35                                                      ptrdiff_t mask_stride,
 
   37                                                      ptrdiff_t srcy_stride,
 
   40                                                      ptrdiff_t srcuv_stride,
 
   45         for (i = 0, j = 0, k = 0; i < 
w; j += (i & 1), i++, k += 3) {
 
   46             if (!use_mask || mask[i] == maskcolor) {
 
   48                     dst[k] = dst[k + 1] = dst[k + 2] = 0x80;
 
   51                     int u = srcu[j] - 128;
 
   52                     int v = srcv[j] - 128;
 
   53                     dst[k]     = av_clip_uint8(y + (             91881 * v + 32768 >> 16));
 
   54                     dst[k + 1] = av_clip_uint8(y + (-22554 * u - 46802 * v + 32768 >> 16));
 
   55                     dst[k + 2] = av_clip_uint8(y + (116130 * u             + 32768 >> 16));
 
   62         srcu += srcuv_stride * (r & 1);
 
   63         srcv += srcuv_stride * (r & 1);
 
   68                              const uint8_t *srcy, ptrdiff_t srcy_stride,
 
   70                              ptrdiff_t srcuv_stride, 
int w, 
int h)
 
   75                             srcu, srcv, srcuv_stride,
 
   81                                     ptrdiff_t mask_stride,
 
   82                                     const uint8_t *srcy, ptrdiff_t srcy_stride,
 
   84                                     ptrdiff_t srcuv_stride, 
int w, 
int h)
 
   87                             maskcolor, mask, mask_stride,
 
   89                             srcu, srcv, srcuv_stride,
 
   95                                     ptrdiff_t mask_stride, 
int w, 
int h)
 
   98                             maskcolor, mask, mask_stride,
 
  117     memcpy(plane + plane_stride *  j,
 
  118            plane + plane_stride * (j >> 1),
 
  121     while ((j -= 2) > 0) {
 
  122         dst1 = plane + plane_stride *  (j + 1);
 
  123         dst2 = plane + plane_stride *   j;
 
  124         src1 = plane + plane_stride * ((j + 1) >> 1);
 
  125         src2 = plane + plane_stride * ( j      >> 1);
 
  127         for (i = (w - 1) >> 1; i >= 0; i--) {
 
  130             dst1[i] = (3 * a + b + 2) >> 2;
 
  131             dst2[i] = (a + 3 * b + 2) >> 2;
 
  135     for (j = h - 1; j >= 0; j--) {
 
  136         p = plane + plane_stride * j;
 
  141         while ((i -= 2) > 0) {
 
  144             p[i]     = (3 * a + b + 1) >> 2;
 
  145             p[i + 1] = (a + 3 * b + 1) >> 2;
 
static void mss2_blit_wmv9_masked_c(uint8_t *dst, ptrdiff_t dst_stride, int maskcolor, const uint8_t *mask, ptrdiff_t mask_stride, const uint8_t *srcy, ptrdiff_t srcy_stride, const uint8_t *srcu, const uint8_t *srcv, ptrdiff_t srcuv_stride, int w, int h)
#define u(width, name, range_min, range_max)
av_cold void ff_mss2dsp_init(MSS2DSPContext *dsp)
static const uint16_t mask[17]
static void mss2_blit_wmv9_c(uint8_t *dst, ptrdiff_t dst_stride, const uint8_t *srcy, ptrdiff_t srcy_stride, const uint8_t *srcu, const uint8_t *srcv, ptrdiff_t srcuv_stride, int w, int h)
static void upsample_plane_c(uint8_t *plane, ptrdiff_t plane_stride, int w, int h)
void(* upsample_plane)(uint8_t *plane, ptrdiff_t plane_stride, int w, int h)
void(* mss2_gray_fill_masked)(uint8_t *dst, ptrdiff_t dst_stride, int maskcolor, const uint8_t *mask, ptrdiff_t mask_stride, int w, int h)
static av_always_inline void mss2_blit_wmv9_template(uint8_t *dst, ptrdiff_t dst_stride, int gray, int use_mask, int maskcolor, const uint8_t *mask, ptrdiff_t mask_stride, const uint8_t *srcy, ptrdiff_t srcy_stride, const uint8_t *srcu, const uint8_t *srcv, ptrdiff_t srcuv_stride, int w, int h)
void(* mss2_blit_wmv9)(uint8_t *dst, ptrdiff_t dst_stride, const uint8_t *srcy, ptrdiff_t srcy_stride, const uint8_t *srcu, const uint8_t *srcv, ptrdiff_t srcuv_stride, int w, int h)
void(* mss2_blit_wmv9_masked)(uint8_t *dst, ptrdiff_t dst_stride, int maskcolor, const uint8_t *mask, ptrdiff_t mask_stride, const uint8_t *srcy, ptrdiff_t srcy_stride, const uint8_t *srcu, const uint8_t *srcv, ptrdiff_t srcuv_stride, int w, int h)
static void mss2_gray_fill_masked_c(uint8_t *dst, ptrdiff_t dst_stride, int maskcolor, const uint8_t *mask, ptrdiff_t mask_stride, int w, int h)
common internal and external API header 
Microsoft Screen 2 (aka Windows Media Video V9 Screen) decoder DSP routines.