Black window capture in desktop media picker dialog in linux |
||
Issue descriptionVersion: 48 OS: Linux What steps will reproduce the problem? (1)Launch the desktop media picker dialog. (2)Select a window that has a thumbnail in picker dialog and move it partially out of screen. What is the expected output? What do you see instead? The thumbnail should be normal, however it is black now. Please use labels and text to provide additional information. After window is moved back and all inside the screen, the thumbnail may become normal most of time. However, if the thumbnail is still black. all new windows in picker will not show their thumbnails. After the window with black thumbnail is selected for share, capture is black. However, if the window without thumbnail is selected for share, capture is normal.
,
Jun 6 2016
@sergey Since when a windows is partially out of screen, the window capture will stop. I plan to add a function to check whether the windows is partially out of screen when create the window list in preview. WDYT?
,
Jun 7 2016
I think it's best to figure out why the capturer doesn't work when the target window is not on the screen and if we can fix this issue. Currently the capturer calls XCopyArea() with src=window_. Maybe it's necessary to call XCompositeNameWindowPixmap() to get the backing pixmap and it would work better in case the window is not fully visible.
,
Jun 7 2016
@sergeyu, In normal/correct x11 window capture https://cs.chromium.org/chromium/src/third_party/webrtc/modules/desktop_capture/x11/x_server_pixel_buffer.cc?dr&q=XCopyArea+file:%5Esrc/third_party/webrtc/&sq=package:chromium&l=243 if (shm_segment_info_) { if (shm_pixmap_) { XCopyArea(display_, window_, shm_pixmap_, shm_gc_, rect.left(), rect.top(), rect.width(), rect.height(), rect.left(), rect.top()); XSync(display_, False); } data = reinterpret_cast<uint8_t*>(x_image_->data) + rect.top() * x_image_->bytes_per_line + rect.left() * x_image_->bits_per_pixel / 8; } else { shm_segment_info_ is true but shm_pixmap_ is false and XCopyArea() is never called. Is this an issue?
,
Jun 8 2016
MIT-SHM—The MIT Shared Memory Extension https://www.x.org/archive/X11R7.5/doc/Xext/mit-shm.html is used for window capture. XShmGetImage() will return false if the windows is partially out of screen.
,
Jun 13 2016
|
||
►
Sign in to add a comment |
||
Comment 1 by gyzhou@chromium.org
, Jun 3 2016