Chromium Code Reviews

Issue 2263043003: Make MediaCodecEncoder fallback to a software encoder on failure. (Closed)

Created:
4 years, 4 months ago by sakal
Modified:
4 years, 2 months ago
Reviewers:
magjed_webrtc, AlexG, stefan-webrtc
CC:
webrtc-reviews_webrtc.org, tterriberry_mozilla.com
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Make MediaCodecEncoder fallback to a software encoder on failure. This should allow us to enable Intel HW VP8 encoder again. BUG=webrtc:6232 ,b/30947951 Committed: https://crrev.com/327e9d0821274a2f519ff261028b4044e4984d40 Cr-Commit-Position: refs/heads/master@{#14552}

Patch Set 1 #

Patch Set 2 : Drop one frame if the fallback encoder doesn't support native frames. #

Patch Set 3 : Don't crash if software encoder is not supported. #

Patch Set 4 : Remove empty lines. #

Total comments: 7

Patch Set 5 : Return WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE immediately. #

Total comments: 8

Patch Set 6 : Rebase. #

Patch Set 7 : Changes according to AlexG's comments. #

Patch Set 8 : Fallback instead of trying to reset the encoder. #

Total comments: 20

Patch Set 9 : Changes according to AlexG's comments. #2 #

Total comments: 4

Patch Set 10 : Rebase. #

Patch Set 11 : Changes according to AlexG's comments. #3 #

Total comments: 10

Patch Set 12 : Changes according to Stefan's comments. #

Unified diffs Side-by-side diffs Stats (+183 lines, -63 lines)
M webrtc/api/android/jni/androidmediaencoder_jni.cc View 27 chunks +148 lines, -58 lines 0 comments
M webrtc/video/video_encoder.cc View 4 chunks +31 lines, -5 lines 0 comments
M webrtc/video_encoder.h View 1 chunk +4 lines, -0 lines 0 comments

Messages

Total messages: 47 (23 generated)
sakal
PTAL
4 years, 3 months ago (2016-08-23 10:55:07 UTC) #3
magjed_webrtc
https://codereview.webrtc.org/2263043003/diff/60001/webrtc/api/android/jni/androidmediaencoder_jni.cc File webrtc/api/android/jni/androidmediaencoder_jni.cc (right): https://codereview.webrtc.org/2263043003/diff/60001/webrtc/api/android/jni/androidmediaencoder_jni.cc#newcode91 webrtc/api/android/jni/androidmediaencoder_jni.cc:91: const int kMaxEncoderResetsBeforeFallback = 3; Now it will fall ...
4 years, 3 months ago (2016-08-23 12:09:50 UTC) #5
sakal
https://codereview.webrtc.org/2263043003/diff/60001/webrtc/api/android/jni/androidmediaencoder_jni.cc File webrtc/api/android/jni/androidmediaencoder_jni.cc (right): https://codereview.webrtc.org/2263043003/diff/60001/webrtc/api/android/jni/androidmediaencoder_jni.cc#newcode91 webrtc/api/android/jni/androidmediaencoder_jni.cc:91: const int kMaxEncoderResetsBeforeFallback = 3; On 2016/08/23 12:09:50, magjed_webrtc ...
4 years, 3 months ago (2016-08-23 12:26:51 UTC) #6
sakal
I made the methods return WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE sooner as discussed offline.
4 years, 3 months ago (2016-08-23 14:19:55 UTC) #8
magjed_webrtc
lgtm https://codereview.webrtc.org/2263043003/diff/60001/webrtc/video/video_encoder.cc File webrtc/video/video_encoder.cc (right): https://codereview.webrtc.org/2263043003/diff/60001/webrtc/video/video_encoder.cc#newcode168 webrtc/video/video_encoder.cc:168: LOG(LS_WARNING) << "Fallback encoder doesn't support native frames, ...
4 years, 3 months ago (2016-08-23 14:28:09 UTC) #9
AlexG
It may worth to check similar fallback decoder implementation and make encoder implementation similar. https://codereview.webrtc.org/2263043003/diff/80001/webrtc/api/android/jni/androidmediaencoder_jni.cc ...
4 years, 3 months ago (2016-08-23 22:50:32 UTC) #11
sakal
I find it hard to properly test this CL because there are a lot of ...
4 years, 3 months ago (2016-08-25 11:52:48 UTC) #13
AlexG
https://codereview.webrtc.org/2263043003/diff/160001/webrtc/api/android/jni/androidmediaencoder_jni.cc File webrtc/api/android/jni/androidmediaencoder_jni.cc (right): https://codereview.webrtc.org/2263043003/diff/160001/webrtc/api/android/jni/androidmediaencoder_jni.cc#newcode383 webrtc/api/android/jni/androidmediaencoder_jni.cc:383: check sw_fallback_required_ flag here https://codereview.webrtc.org/2263043003/diff/160001/webrtc/api/android/jni/androidmediaencoder_jni.cc#newcode554 webrtc/api/android/jni/androidmediaencoder_jni.cc:554: return WEBRTC_VIDEO_CODEC_ERROR; fallback ...
4 years, 3 months ago (2016-08-31 00:25:58 UTC) #15
sakal
https://codereview.webrtc.org/2263043003/diff/160001/webrtc/api/android/jni/androidmediaencoder_jni.cc File webrtc/api/android/jni/androidmediaencoder_jni.cc (right): https://codereview.webrtc.org/2263043003/diff/160001/webrtc/api/android/jni/androidmediaencoder_jni.cc#newcode383 webrtc/api/android/jni/androidmediaencoder_jni.cc:383: On 2016/08/31 00:25:57, AlexG wrote: > check sw_fallback_required_ flag ...
4 years, 3 months ago (2016-09-02 08:08:01 UTC) #17
sakal
Alexander, can you take a look at this CL please?
4 years, 3 months ago (2016-09-08 08:43:39 UTC) #18
AlexG
On 2016/09/08 08:43:39, sakal wrote: > Alexander, can you take a look at this CL ...
4 years, 3 months ago (2016-09-09 17:03:27 UTC) #19
AlexG
lgtm https://codereview.webrtc.org/2263043003/diff/200001/webrtc/api/android/jni/androidmediaencoder_jni.cc File webrtc/api/android/jni/androidmediaencoder_jni.cc (right): https://codereview.webrtc.org/2263043003/diff/200001/webrtc/api/android/jni/androidmediaencoder_jni.cc#newcode396 webrtc/api/android/jni/androidmediaencoder_jni.cc:396: return WEBRTC_VIDEO_CODEC_ERROR; WEBRTC_VIDEO_CODEC_OK - similarly to InitDecode() https://codereview.webrtc.org/2263043003/diff/200001/webrtc/api/android/jni/androidmediaencoder_jni.cc#newcode536 ...
4 years, 3 months ago (2016-09-09 21:55:17 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2263043003/240001
4 years, 3 months ago (2016-09-12 14:46:14 UTC) #27
commit-bot: I haz the power
Try jobs failed on following builders: presubmit on master.tryserver.webrtc (JOB_FAILED, http://build.chromium.org/p/tryserver.webrtc/builders/presubmit/builds/8286)
4 years, 3 months ago (2016-09-12 14:49:24 UTC) #29
sakal
Additional approval needed. Tommi, PTAL.
4 years, 3 months ago (2016-09-12 14:59:01 UTC) #31
sakal
Stefan, maybe you could review this instead of tommi since he is busy?
4 years, 2 months ago (2016-09-27 08:58:10 UTC) #33
stefan-webrtc
My main worry about this CL is that it doesn't add any tests, although the ...
4 years, 2 months ago (2016-10-06 09:27:47 UTC) #35
sakal
The problem is this code is really hard to test because it only triggers when ...
4 years, 2 months ago (2016-10-06 12:10:03 UTC) #37
stefan-webrtc
4 years, 2 months ago (2016-10-06 12:17:57 UTC) #38
stefan-webrtc
On 2016/10/06 12:10:03, sakal wrote: > The problem is this code is really hard to ...
4 years, 2 months ago (2016-10-06 12:19:38 UTC) #39
stefan-webrtc
lgtm
4 years, 2 months ago (2016-10-06 12:19:57 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.webrtc.org/2263043003/300001
4 years, 2 months ago (2016-10-06 12:22:17 UTC) #43
commit-bot: I haz the power
Committed patchset #12 (id:300001)
4 years, 2 months ago (2016-10-06 12:55:15 UTC) #45
commit-bot: I haz the power
4 years, 2 months ago (2016-10-06 12:55:24 UTC) #47
Message was sent while issue was closed.
Patchset 12 (id:??) landed as
https://crrev.com/327e9d0821274a2f519ff261028b4044e4984d40
Cr-Commit-Position: refs/heads/master@{#14552}

Powered by Google App Engine