Closed Bug 1124907 Opened 11 years ago Closed 11 years ago

Joining empty room: wild flickering of screen showing own camera

Categories

(Core :: Graphics: Layers, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla39
blocking-b2g 2.2+
Tracking Status
firefox39 --- fixed
b2g-v2.0 --- unaffected
b2g-v2.1 --- unaffected
b2g-v2.2 --- verified
b2g-master --- verified

People

(Reporter: aryx, Assigned: sotaro)

References

Details

(Keywords: regression)

Attachments

(4 files, 1 obsolete file)

B2G 3.0pre 20150121160202 on Flame (v188 base image) Firefox Hello master branch latest commit is https://github.com/mozilla-b2g/firefoxos-loop-client/commit/f4b8613047dd8cfa60824e07302f3912c1e5372f Joining empty room shows a wild flickering of the screen which depicts one's own camera. Steps to reproduce: 1. Tried to call contact with Hello into room, contact unavailable. 2. Joined room from room list. 3. Confirmed the settings (front camera). 4. After some hundred milliseconds, the screen flickers, showing the cyan background in the breaks.
Same issue in 2.2 In 2.0 is working as expected.
Attached patch ma.patch (obsolete) — Splinter Review
Maybe some kind of nice effect could prevent of ugly flickers, what do you think?
Attachment #8553677 - Flags: feedback?(oteo)
Attachment #8553677 - Flags: feedback?(frsela)
Comment on attachment 8553677 [details] [diff] [review] ma.patch sorry wrong bug
Attachment #8553677 - Attachment is obsolete: true
Attachment #8553677 - Flags: feedback?(oteo)
Attachment #8553677 - Flags: feedback?(frsela)
QA wanted for a branch check.
Keywords: qawanted
I can repro this bug on Flame v2.2&3.0,but can't repro on Flame v2.0&2.1. See attachments: verify_v2.2.MP4 and logcat_1640.txt Reproduce rate: 5/5. Repro STR: 1. Install Hello app and sign in using a firefox account. 2. Join a room from room list. 3. Confirm the settings (Front or Back camera). **"You are the only one in the room" message will display. 4. After some hundred milliseconds, the screen flickers, showing the cyan background in the breaks. --KO Flame 3.0 build: Build ID 20150205010209 Gaia Revision 2b83a6d5d1185a438b5bbd287497ac2743b501db Gaia Date 2015-02-04 21:30:59 Gecko Revision https://hg.mozilla.org/mozilla-central/rev/34a66aaaca81 Gecko Version 38.0a1 Device Name flame Firmware(Release) 4.4.2 Firmware(Incremental) eng.cltbld.20150205.044014 Firmware Date Thu Feb 5 04:40:24 EST 2015 Bootloader L1TC000118D0 Flame 2.2 build: Build ID 20150205002503 Gaia Revision c2047a46e29696238e9b4c9caaba47736421449a Gaia Date 2015-02-04 20:34:04 Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/adfba0a07e9b Gecko Version 37.0a2 Device Name flame Firmware(Release) 4.4.2 Firmware(Incremental) eng.cltbld.20150205.045043 Firmware Date Thu Feb 5 04:50:54 EST 2015 Bootloader L1TC000118D0 Flame 2.1 build: Build ID 20150205001711 Gaia Revision 17bf14f12e43043654498330d610d469b8b55e64 Gaia Date 2015-02-03 05:19:41 Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g34_v2_1/rev/bdebcc47ec7a Gecko Version 34.0 Device Name flame Firmware(Release) 4.4.2 Firmware(Incremental) eng.cltbld.20150205.035050 Firmware Date Thu Feb 5 03:51:01 EST 2015 Bootloader L1TC000118D0 Flame 2.0 build: Build ID 20150205000205 Gaia Revision 2989f2b2bd12fcc0e9c017d2db766e76a55873b8 Gaia Date 2015-01-22 21:13:40 Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g32_v2_0/rev/69057b33ef5b Gecko Version 32.0 Device Name flame Firmware(Release) 4.4.2 Firmware(Incremental) eng.cltbld.20150205.034605 Firmware Date Thu Feb 5 03:46:16 EST 2015 Bootloader L1TC000118D0
This is a regression. IMHO it should be fixed.
blocking-b2g: --- → 2.2?
QA Whiteboard: [MGSEI-Triage+]
Based on comment #1 and comment #5, triage is noting as a regression in the Keyword field and blocking because this is a regression.
blocking-b2g: 2.2? → 2.2+
Keywords: regression
Hi Maria, Do you know who is working on Loop? Please fw the ni.
Flags: needinfo?(oteo)
From the description of the bug, it seems to me, this is not a loop issue but a platform bug, but not totally sure. I forward the ni to Jesup.
Flags: needinfo?(oteo) → needinfo?(rjesup)
Questions: does this happen in a call, or just while "waiting"? Does this happen at http://mozilla.github.io/webrtc-landing/gum_test.html? (video or video+audio option)
Flags: needinfo?(rjesup)
Flags: needinfo?(lixia)
Flags: needinfo?(archaeopteryx)
(In reply to Randell Jesup [:jesup] from comment #12) > Questions: does this happen in a call, or just while "waiting"? Just while "waiting". > Does this happen at http://mozilla.github.io/webrtc-landing/gum_test.html? Tried video+audio with B2G 2.2 20150302002504 on Flame (v188 base image), issue didn't happen.
Flags: needinfo?(archaeopteryx)
(In reply to Archaeopteryx [:aryx] from comment #13) > (In reply to Randell Jesup [:jesup] from comment #12) > > Questions: does this happen in a call, or just while "waiting"? > Just while "waiting". > > > Does this happen at http://mozilla.github.io/webrtc-landing/gum_test.html? > Tried video+audio with B2G 2.2 20150302002504 on Flame (v188 base image), > issue didn't happen. These imply that getUserMedia and mediastreams (and video elements) are working correctly, and the flickering is something at the DOM level/application. Maria, it isn't re-assinging the <video> srcObject input repeatedly, or fiddling the visibility, etc?
Flags: needinfo?(oteo)
Per Comment 13,clear NI.
Flags: needinfo?(lixia)
(In reply to Randell Jesup [:jesup] from comment #14) > > Maria, it isn't re-assinging the <video> srcObject input repeatedly, or > fiddling the visibility, etc? Hi Randell, sorry for answering so late, I was on PTO last week. In theory we are not re-assigning the video object and/or playing with the visibility of the video element. The only difference with respect to the "established" room session, is that while a participant is the only one in the room, Loop is showing a "fake" video with the source being the media element returned by GUM: https://github.com/mozilla-b2g/firefoxos-loop-client/blob/master/app/js/screens/room/room_ui.js#L183"
Flags: needinfo?(oteo) → needinfo?(rjesup)
Hi Randell, do you mind putting assignee as you and keep working on this bug? thanks.
Flags: needinfo?(rjesup)
Sheila, can you find an assignee for this bug? Thanks.
Flags: needinfo?(smooney)
At my request, Randell looked at this to see if this problem was in the WebRTC Platform code. This does not appear to be a WebRTC Platform issue, but rather a more general issue outside of the WebRTC code and possibly something specific to FxOS and/or an interaction between the Loop client and other changes in v2.2. A good owner for this bug would be Sotaro or someone with his skill set (deep, general video knowledge and very familiar with FxOS device debugging) to do a deeper dive on what exactly the root cause problem is. Sotaro -- Do you have any time to look at this? Or could you recommend someone to do a deeper investigation?
Flags: needinfo?(sotaro.ikeda.g)
Flags: needinfo?(smooney)
Flags: needinfo?(rjesup)
(In reply to Maire Reavy [:mreavy] (Plz needinfo me) from comment #19) > > Sotaro -- Do you have any time to look at this? Or could you recommend > someone to do a deeper investigation? At first, I am going to take a look.
Assignee: nobody → sotaro.ikeda.g
Flags: needinfo?(sotaro.ikeda.g)
On latest master flame-kk, the problem seems to be addressed.
(In reply to Sotaro Ikeda [:sotaro] from comment #21) > On latest master flame-kk, the problem seems to be addressed. On latest v2.2 flame-kk still has the problem.
njpark, what is a correct way to request regression window? Are "b2g-2.2+" and "regressionwindow-wanted" enough for it?
Flags: needinfo?(npark)
Flags: needinfo?(npark)
Keywords: qawanted
(In reply to Sotaro Ikeda [:sotaro] from comment #23) > njpark, what is a correct way to request regression window? Are "b2g-2.2+" > and "regressionwindow-wanted" enough for it? Yes, I added 'qawanted' too so they can also do the branch checking and independently reproduce the problem.
Keywords: qawanted
Ah, sorry for not reading the entire comment, as the branch check was already done.
So it seems that there is an issue with pushing the app to the device using grunt build. In that case, you can manually push the app by using WebIDE of the firefox browser. (Open App -> Open Packaged App -> choose the app folder insider the loop folder, then choose Install and Run under File menu) Then simply follow the STR to recreate the issue. The bug seems to be in master as well, but it is much easier to repro in 2.2 branch.
QA Contact: ychung
I was unable to reproduce this issue on the latest Flame Master and 2.2. I'm not sure if I'm on the same version as others. On Hello, it says "Unknown" under version in the Settings page. On the Firefox browser (for installing the app), it says "1.1.1d for the version. No-Jun, were you able to reproduce this issue at all on the latest version of Hello? Environmental Variables: Device: Flame 3.0 Build ID: 20150319060239 Gaia: c39e15f631de80c69467fda0d4ea0bcda9e194ca Gecko: cbd0efcd976c Version: 39.0a1 (3.0) Firmware Version: v18D-1 User Agent: Mozilla/5.0 (Mobile; rv:39.0) Gecko/39.0 Firefox/39.0 Environmental Variables: Device: Flame 2.2 BuildID: 20150319100137 Gaia: 4e0633463571377ad4badc680b666771684e862d Gecko: 535ec28fb36f Version: 37.0 (2.2) Firmware Version: v18D-1 User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0
Flags: needinfo?(npark)
I am still seeing the issue in 2.2 in master FxOS branches, and using Loop mobile master branch. flame device with latest 2.2 FxOS version BuildID:20150320062304 Platform version:37.0 Firmware Version: v18D-1 Gecko-c768752 Gaia-c8136ef Flame device with latest master FxOS version BuildID:20150320081235 Platform version:39a.01 Firmware Version: v18D-1 Gecko-a525293 Gaia-3e39898 Note: It seems that there has been a change in the FxOS master branch that makes the grunt fails (it works for 2.2 and previous versions). As soon as this PR https://github.com/mozilla-b2g/firefoxos-loop-client/pull/568 lands (I hope it will be today) you can use grunt in master as usual. Otherwise WebIDE can be used in the meantime, and it works for all the FxOS versions.
(In reply to Yeojin Chung [:YeojinC] from comment #27) > I was unable to reproduce this issue on the latest Flame Master and 2.2. I'm > not sure if I'm on the same version as others. On Hello, it says "Unknown" > under version in the Settings page. On the Firefox browser (for installing > the app), it says "1.1.1d for the version. > > No-Jun, were you able to reproduce this issue at all on the latest version > of Hello? > > Environmental Variables: > Device: Flame 3.0 > Build ID: 20150319060239 > Gaia: c39e15f631de80c69467fda0d4ea0bcda9e194ca > Gecko: cbd0efcd976c > Version: 39.0a1 (3.0) > Firmware Version: v18D-1 > User Agent: Mozilla/5.0 (Mobile; rv:39.0) Gecko/39.0 Firefox/39.0 > > Environmental Variables: > Device: Flame 2.2 > BuildID: 20150319100137 > Gaia: 4e0633463571377ad4badc680b666771684e862d > Gecko: 535ec28fb36f > Version: 37.0 (2.2) > Firmware Version: v18D-1 > User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0 Yes I can reproduce the issue, and I think in the original str, it left out a step. In my case, if you tap the video screen right below the message "You are the only one in the room" it starts to flicker right away. It only works if you select the front camera too.
Flags: needinfo?(npark)
It is quite difficult to repro the issue in master, so I think we only need to use the 2.2 branch, according to sotaro.
(In reply to No-Jun Park [:njpark] from comment #30) > It is quite difficult to repro the issue in master, so I think we only need > to use the 2.2 branch, according to sotaro. Thanks, No-Jun! I was able to reproduce the issue. ============================================================= Mozilla-inbound Regression Window: Last Working Environmental Variables: Device: Flame 2.2 BuildID: 20141216070347 Gaia: af3d2f89f391c92667e04676fc0ac971e6021bb7 Gecko: 47fdf6370008 Version: 37.0a1 (2.2) Firmware Version: v18D-1 User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0 First Broken Environmental Variables: Device: Flame 2.2 BuildID: 20141216071247 Gaia: af3d2f89f391c92667e04676fc0ac971e6021bb7 Gecko: 473ecad73b44 Version: 37.0a1 (2.2) Firmware Version: v18D-1 User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0 Last Working Gaia First Broken Gecko: Issue DOES reproduce Gaia: af3d2f89f391c92667e04676fc0ac971e6021bb7 Gecko: 473ecad73b44 First Broken Gaia Last Working Gecko: Issue does NOT reproduce Gaia: af3d2f89f391c92667e04676fc0ac971e6021bb7 Gecko: 47fdf6370008 http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=47fdf6370008&tochange=473ecad73b44 caused by bug 1043558
QA Whiteboard: [MGSEI-Triage+] → [QAnalyst-Triage?][MGSEI-Triage+]
Flags: needinfo?(ktucker)
QA Contact: ychung
Sotaro, can you take a look at this please? This looks to have been caused by the work done on bug 1043558
Blocks: 1043558
QA Whiteboard: [QAnalyst-Triage?][MGSEI-Triage+] → [QAnalyst-Triage+][MGSEI-Triage+]
Flags: needinfo?(ktucker) → needinfo?(sotaro.ikeda.g)
This bug is triggered by bug 1043558. But actual regression bug seems Bug 1077301.
Flags: needinfo?(sotaro.ikeda.g)
See Also: → 1077301
When the problem happens, there are 2 ImageHost/ImageClient pairs. One ImageHost is connected to ImageLayerComposite, the other ImageHost is not connected to ImageLayerComposite. ImageHost::UseTextureHost() call to unbounded ImageHost make the bound GrallocTextureHostOGL to unbound state. FYI: related diagram https://github.com/sotaroikeda/firefox-diagrams/blob/master/gfx/gfx_ImageBridge_FirefoxOS_2_1.pdf?raw=true
Before bug 1043558, it does not cause the problem because shmem is not directly bounded to OpenGL texture.
The patch fix the problem on v2.2 flame.
Component: Gaia::Loop → Graphics: Layers
Product: Firefox OS → Core
Attachment #8581750 - Flags: review?(nical.bugzilla)
Comment on attachment 8581750 [details] [diff] [review] patch - Call SetCompositor() only when it is valid Review of attachment 8581750 [details] [diff] [review]: ----------------------------------------------------------------- Looks, good. I am curious, though, as to why we have a ImageHost that is not attached to a layer?
Attachment #8581750 - Flags: review?(nical.bugzilla) → review+
(In reply to Nicolas Silva [:nical] from comment #38) > > Looks, good. I am curious, though, as to why we have a ImageHost that is not > attached to a layer? I am not sure. I am going to check it.
(In reply to Sotaro Ikeda [:sotaro] from comment #39) > (In reply to Nicolas Silva [:nical] from comment #38) > > > > Looks, good. I am curious, though, as to why we have a ImageHost that is not > > attached to a layer? > > I am not sure. I am going to check it. It seems like the following. ImageContainer creates ImageClient if ImageBridge exist. It does not depend on ImageLayer. Therefore, if camera preview is rendered to 2 video elements and one element is hidden. The hidden video element does not create ImageLayer, but create ImageClient/ImageHost.
It makes sense, thank you.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla39
I am not reproducing the issue anymore in latest FxOS master version, thanks a lot! Environmental Variables: Device: Flame Master Build ID: 20150325071251 Gaia: 3970bcf Gecko: a2b428e Platform Version: 39.0a1 (Master) Firmware Version: v18D
Tested this on 2.2, and it seems to work well there with no side effects seen. Can we put an uplift request to 2.2?
Comment on attachment 8581750 [details] [diff] [review] patch - Call SetCompositor() only when it is valid NOTE: Please see https://wiki.mozilla.org/Release_Management/B2G_Landing to better understand the B2G approval process and landings. [Approval Request Comment] Bug caused by (feature/regressing bug #): bug 1043558 triggers the bug. actual regression is by Bug 1077301. User impact if declined: user could see camera preview flickering. Testing completed: locally tested and qa tested. Risk to taking this patch (and alternatives if risky): low risk. String or UUID changes made by this patch: none
Attachment #8581750 - Flags: approval-mozilla-b2g37?
Attachment #8581750 - Flags: approval-mozilla-b2g37? → approval-mozilla-b2g37+
This bug has been successfully verified on latest Nightly Flame v2.2&3.0 by these steps in Comment After prompt "You are the only one in the room" displays,the screen will not flicker. See attachment: verified_v2.2&3.0.mp4 Reproduce rate: 0/5 Device: Flame 2.2 build(Pass) Build ID 20150326002504 Gaia Revision e59ac067a1d22b7a72cbebc892ec652723f2a557 Gaia Date 2015-03-26 00:02:53 Gecko Revision https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/04b4b9d1faae Gecko Version 37.0 Device Name flame Firmware(Release) 4.4.2 Firmware(Incremental) eng.cltbld.20150326.042521 Firmware Date Thu Mar 26 04:25:30 EDT 2015 Bootloader L1TC000118D0 Device: Flame 3.0 build(Pass) Build ID 20150326160206 Gaia Revision 525c341254e08f07f90da57a4d1cd5971a3cc668 Gaia Date 2015-03-26 16:34:16 Gecko Revision https://hg.mozilla.org/mozilla-central/rev/59554288b4eb Gecko Version 39.0a1 Device Name flame Firmware(Release) 4.4.2 Firmware(Incremental) eng.cltbld.20150326.193247 Firmware Date Thu Mar 26 19:32:58 EDT 2015 Bootloader L1TC000118D0
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: