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

Issue 1453413005: Android SurfaceViewRenderer: Don't rely on widthSpec/heightSpec after onMeasure() returns (Closed)

Created:
5 years, 1 month ago by magjed_webrtc
Modified:
5 years ago
Reviewers:
hbos
CC:
webrtc-reviews_webrtc.org, yujie_mao (webrtc), Andrew MacDonald, tterriberry_mozilla.com, qiang.lu, niklas.enbom, peah-webrtc
Base URL:
https://chromium.googlesource.com/external/webrtc.git@master
Target Ref:
refs/pending/heads/master
Project:
webrtc
Visibility:
Public.

Description

Android SurfaceViewRenderer: Don't rely on widthSpec/heightSpec after onMeasure() returns SurfaceViewRenderer currently stores widthSpec/heightSpec internally, and triggers requestLayout() from renderFrameOnRenderThread()->checkConsistentLayout() when it detects a change using widthSpec/heightSpec. This is not reliable, because onMeasure() might be called several times during the layout process negotiation. For example it might look like this: -> onMeasure(at most 1920, at most 1080) <- setMeasuredDimension(1080, 1080) -> onMeasure(exactly 1080, exactly 1080) <- setMeasuredDimension(1080, 1080) Then we store (exactly 1080, exactly 1080) even though we are allowed to be bigger than this, and requestLayout() will never be triggered. This CL moves the requestLayout() trigger to updateFrameDimensionsAndReportEvents() when the frame size changes. Other small changes in this CL are: * Replace with/height variables with Point. * Add logging in updateFrameDimensionsAndReportEvents() even when rendererEvents is null. * Use Math.round() in RendererCommon.getDisplaySize() instead of integer cast. R=hbos@webrtc.org Committed: https://crrev.com/4c5eea3c73e90b11bc17679d6b0943813e4c5038 Cr-Commit-Position: refs/heads/master@{#10774}

Patch Set 1 #

Total comments: 11

Patch Set 2 : Addressing hbos@ comments #

Patch Set 3 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+74 lines, -60 lines) Patch
M talk/app/webrtc/java/android/org/webrtc/RendererCommon.java View 1 chunk +2 lines, -2 lines 0 comments Download
M talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java View 1 2 12 chunks +72 lines, -58 lines 0 comments Download

Messages

Total messages: 12 (5 generated)
magjed_webrtc
hbos - Please take a look.
5 years, 1 month ago (2015-11-19 16:19:02 UTC) #3
hbos
https://codereview.webrtc.org/1453413005/diff/1/talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java File talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java (left): https://codereview.webrtc.org/1453413005/diff/1/talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java#oldcode123 talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java:123: // Runnable for posting frames to render thread.. I ...
5 years, 1 month ago (2015-11-20 15:08:27 UTC) #4
magjed_webrtc
hbos - Please take another look. https://codereview.webrtc.org/1453413005/diff/1/talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java File talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java (left): https://codereview.webrtc.org/1453413005/diff/1/talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java#oldcode123 talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java:123: // Runnable for ...
5 years, 1 month ago (2015-11-20 15:49:25 UTC) #5
hbos
lgtm https://codereview.webrtc.org/1453413005/diff/1/talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java File talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java (right): https://codereview.webrtc.org/1453413005/diff/1/talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java#newcode330 talk/app/webrtc/java/android/org/webrtc/SurfaceViewRenderer.java:330: renderThreadHandler.postAtFrontOfQueue(makeBlackRunnable); On 2015/11/20 15:49:25, magjed_webrtc wrote: > On ...
5 years, 1 month ago (2015-11-23 08:25:14 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1453413005/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1453413005/40001
5 years ago (2015-11-24 15:53:13 UTC) #9
magjed_webrtc
Committed patchset #3 (id:40001) manually as 4c5eea3c73e90b11bc17679d6b0943813e4c5038 (presubmit successful).
5 years ago (2015-11-24 16:45:38 UTC) #11
commit-bot: I haz the power
5 years ago (2015-11-24 16:45:39 UTC) #12
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/4c5eea3c73e90b11bc17679d6b0943813e4c5038
Cr-Commit-Position: refs/heads/master@{#10774}

Powered by Google App Engine
This is Rietveld 408576698