tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ycbcr_to_rgb565.h (2893B)


      1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 #ifndef MEDIA_BASE_YCBCR_TO_RGB565_H_
      5 #define MEDIA_BASE_YCBCR_TO_RGB565_H_
      6 #include "yuv_convert.h"
      7 #include "mozilla/arm.h"
      8 
      9 // It's currently only worth including this if we have NEON support.
     10 #if defined(__arm__) && defined(MOZILLA_MAY_SUPPORT_NEON)
     11 #define HAVE_YCBCR_TO_RGB565 1
     12 #endif
     13 
     14 namespace mozilla {
     15 
     16 namespace gfx {
     17 
     18 #ifdef HAVE_YCBCR_TO_RGB565
     19 // Convert a frame of YUV to 16 bit RGB565.
     20 void ConvertYCbCrToRGB565(const uint8_t* yplane,
     21                                   const uint8_t* uplane,
     22                                   const uint8_t* vplane,
     23                                   uint8_t* rgbframe,
     24                                   int pic_x,
     25                                   int pic_y,
     26                                   int pic_width,
     27                                   int pic_height,
     28                                   int ystride,
     29                                   int uvstride,
     30                                   int rgbstride,
     31                                   YUVType yuv_type);
     32 
     33 // Used to test if we have an accelerated version.
     34 bool IsConvertYCbCrToRGB565Fast(int pic_x,
     35                                         int pic_y,
     36                                         int pic_width,
     37                                         int pic_height,
     38                                         YUVType yuv_type);
     39 
     40 // Scale a frame of YUV to 16 bit RGB565.
     41 void ScaleYCbCrToRGB565(const uint8_t *yplane,
     42                                 const uint8_t *uplane,
     43                                 const uint8_t *vplane,
     44                                 uint8_t *rgbframe,
     45                                 int source_x0,
     46                                 int source_y0,
     47                                 int source_width,
     48                                 int source_height,
     49                                 int width,
     50                                 int height,
     51                                 int ystride,
     52                                 int uvstride,
     53                                 int rgbstride,
     54                                 YUVType yuv_type,
     55                                 ScaleFilter filter);
     56 
     57 // Used to test if we have an accelerated version.
     58 bool IsScaleYCbCrToRGB565Fast(int source_x0,
     59                                       int source_y0,
     60                                       int source_width,
     61                                       int source_height,
     62                                       int width,
     63                                       int height,
     64                                       YUVType yuv_type,
     65                                       ScaleFilter filter);
     66 #endif // HAVE_YCBCR_TO_RGB565
     67 
     68 } // namespace gfx
     69 
     70 } // namespace mozilla
     71 
     72 #endif // MEDIA_BASE_YCBCR_TO_RGB565_H_