Skip to content
  • jer.noble@apple.com's avatar
    Mac: Avoid using k32BGRAPixelFormat on certain platforms. · 09ea6ed0
    jer.noble@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=107732
    
    Reviewed by Eric Carlson.
    
    Using a AVPlayerItemVideoOutput to generate ARGB pixel buffers is a potential performance
    hit, as the AVPlayerItemVideoOutput will send YUV buffers through a VTPixeBufferTransferSession
    to convert them to ARGB regardless of whether or not a given buffer will be used. Instead,
    ask the AVPlayerItemVideoOutput for pixel buffers in the decoder's native pixel format and use
    the VTPixelBufferTransferSession to convert to ARGB only those pixel buffers which were actually
    requested.
    
    * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
    * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
    (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput): Ask for the decoder's native
        pixel format.
    (WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer): Lazily create a VTPixelTransferSession
        and convert output pixel buffers to k32BGRAPixelFormat.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@140706 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    09ea6ed0