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

Issue 1394303005: Android MediaCodecVideoDecoder: Limit max pending frames to number of input buffers (Closed)

Created:
5 years, 2 months ago by magjed_webrtc
Modified:
5 years, 2 months ago
Reviewers:
AlexG, perkj_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

Android MediaCodecVideoDecoder: Limit max pending frames to number of input buffers This CL should reduce the number of timeouts for dequeueInputBuffer() which results in the log "MediaCodecVideo: dequeueInputBuffer error" followed by software fallback for VP8/VP9 and codec restart for H264. A timeout always happen for dequeueInputBuffer() when frames_received_ > frames_decoded_ + num_input_buffers. The following code tries to drain the decoder before enqueuing more input buffers: // Try to drain the decoder and wait until output is not too // much behind the input. if (frames_received_ > frames_decoded_ + max_pending_frames_) { ALOGV("Received: %d. Decoded: %d. Wait for output...", frames_received_, frames_decoded_); if (!DeliverPendingOutputs(jni, kMediaCodecTimeoutMs, true /* dropFrames */)) { ALOGE << "DeliverPendingOutputs error"; return ProcessHWErrorOnCodecThread(); } if (frames_received_ > frames_decoded_ + max_pending_frames_) { ALOGE << "Output buffer dequeue timeout"; return ProcessHWErrorOnCodecThread(); } ... } However, for H264, |max_pending_frames_| can currently be larger than the number of input buffers so that the code above is never executed. This CL limits |max_pending_frames_| to the number of input buffers. TBR=glaznev BUG=b/24867188,b/24864151 Committed: https://crrev.com/6d387c0e92f033e31c8dd1efbf3f98bf159c6cf1 Cr-Commit-Position: refs/heads/master@{#10273}

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+3 lines, -0 lines) Patch
M talk/app/webrtc/java/jni/androidmediadecoder_jni.cc View 2 chunks +3 lines, -0 lines 0 comments Download

Messages

Total messages: 7 (2 generated)
magjed_webrtc
Please take a look.
5 years, 2 months ago (2015-10-14 09:52:18 UTC) #2
perkj_webrtc
On 2015/10/14 09:52:18, magjed_webrtc wrote: > Please take a look. lgtm
5 years, 2 months ago (2015-10-14 10:00:05 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1394303005/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1394303005/1
5 years, 2 months ago (2015-10-14 10:05:14 UTC) #5
commit-bot: I haz the power
Committed patchset #1 (id:1)
5 years, 2 months ago (2015-10-14 11:02:06 UTC) #6
commit-bot: I haz the power
5 years, 2 months ago (2015-10-14 11:02:14 UTC) #7
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/6d387c0e92f033e31c8dd1efbf3f98bf159c6cf1
Cr-Commit-Position: refs/heads/master@{#10273}

Powered by Google App Engine
This is Rietveld 408576698