⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 273725 in webkit


Ignore:
Timestamp:
Mar 2, 2021, 1:18:12 AM (6 years ago)
Author:
youenn@apple.com
Message:

Camera capture in iOS with GPUProcess enabled does not always handle orientation well at start up
​https://bugs.webkit.org/show_bug.cgi?id=222167
<rdar://problem/74520496>

Reviewed by Eric Carlson.

Before the patch, GPU process orientation monitors were only getting updates after creation of the web process connection.
The initial value was therefore sometimes wrong.
Update this by storing the orientation value in GPU process and initializing it for every web process connection.
Manually tested.

  • GPUProcess/GPUProcess.cpp:

(WebKit::GPUProcess::createGPUConnectionToWebProcess):
(WebKit::GPUProcess::setOrientationForMediaCapture):

  • GPUProcess/GPUProcess.h:
Location:
trunk/Source/WebKit
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r273724 r273725  
     12021-03-02  Youenn Fablet  <youenn@apple.com>
     2
     3        Camera capture in iOS with GPUProcess enabled does not always handle orientation well at start up
     4        https://bugs.webkit.org/show_bug.cgi?id=222167
     5        <rdar://problem/74520496>
     6
     7        Reviewed by Eric Carlson.
     8
     9        Before the patch, GPU process orientation monitors were only getting updates after creation of the web process connection.
     10        The initial value was therefore sometimes wrong.
     11        Update this by storing the orientation value in GPU process and initializing it for every web process connection.
     12        Manually tested.
     13
     14        * GPUProcess/GPUProcess.cpp:
     15        (WebKit::GPUProcess::createGPUConnectionToWebProcess):
     16        (WebKit::GPUProcess::setOrientationForMediaCapture):
     17        * GPUProcess/GPUProcess.h:
     18
    1192021-03-01  Fujii Hironori  <Hironori.Fujii@sony.com>
    220
  • trunk/Source/WebKit/GPUProcess/GPUProcess.cpp

    r273288 r273725  
    9898    auto access = m_mediaCaptureAccessMap.take(identifier);
    9999    newConnection->updateCaptureAccess(access.allowAudioCapture, access.allowVideoCapture, access.allowDisplayCapture);
     100    newConnection->setOrientationForMediaCapture(m_orientation);
    100101#endif
    101102
    … …  
    212213void GPUProcess::setOrientationForMediaCapture(uint64_t orientation)
    213214{
     215    m_orientation = orientation;
    214216    for (auto& connection : m_webProcessConnections.values())
    215217        connection->setOrientationForMediaCapture(orientation);
  • trunk/Source/WebKit/GPUProcess/GPUProcess.h

    r273288 r273725  
    134134    RefPtr<WorkQueue> m_videoMediaStreamTrackRendererQueue;
    135135#endif
     136    uint64_t m_orientation { 0 };
    136137#endif
    137138#if USE(LIBWEBRTC) && PLATFORM(COCOA)
Note: See TracChangeset for help on using the changeset viewer.