Merge commit '92ba965103d3884609730ba9bf293772dc78a9ef'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 26 Mar 2014 14:36:27 +0000 (15:36 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 26 Mar 2014 14:36:27 +0000 (15:36 +0100)
* commit '92ba965103d3884609730ba9bf293772dc78a9ef':
  dsputil: Move draw_edges and clear_block* out of dsputil_template

Conflicts:
libavcodec/dsputil.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavcodec/dsputil.c
libavcodec/dsputil_template.c

@@@ -2519,37 -2402,44 +2519,75 @@@ static void jref_idct_add(uint8_t *dest
      add_pixels_clamped_c(block, dest, line_size);
  }
  
 +static void ff_jref_idct4_put(uint8_t *dest, int line_size, int16_t *block)
 +{
 +    ff_j_rev_dct4 (block);
 +    put_pixels_clamped4_c(block, dest, line_size);
 +}
 +static void ff_jref_idct4_add(uint8_t *dest, int line_size, int16_t *block)
 +{
 +    ff_j_rev_dct4 (block);
 +    add_pixels_clamped4_c(block, dest, line_size);
 +}
 +
 +static void ff_jref_idct2_put(uint8_t *dest, int line_size, int16_t *block)
 +{
 +    ff_j_rev_dct2 (block);
 +    put_pixels_clamped2_c(block, dest, line_size);
 +}
 +static void ff_jref_idct2_add(uint8_t *dest, int line_size, int16_t *block)
 +{
 +    ff_j_rev_dct2 (block);
 +    add_pixels_clamped2_c(block, dest, line_size);
 +}
 +
 +static void ff_jref_idct1_put(uint8_t *dest, int line_size, int16_t *block)
 +{
 +    dest[0] = av_clip_uint8((block[0] + 4)>>3);
 +}
 +static void ff_jref_idct1_add(uint8_t *dest, int line_size, int16_t *block)
 +{
 +    dest[0] = av_clip_uint8(dest[0] + ((block[0] + 4)>>3));
 +}
 +
+ /* draw the edges of width 'w' of an image of size width, height */
+ // FIXME: Check that this is OK for MPEG-4 interlaced.
+ static void draw_edges_8_c(uint8_t *buf, int wrap, int width, int height,
+                            int w, int h, int sides)
+ {
+     uint8_t *ptr = buf, *last_line;
+     int i;
+     /* left and right */
+     for (i = 0; i < height; i++) {
+         memset(ptr - w, ptr[0], w);
+         memset(ptr + width, ptr[width - 1], w);
+         ptr += wrap;
+     }
+     /* top and bottom + corners */
+     buf -= w;
+     last_line = buf + (height - 1) * wrap;
+     if (sides & EDGE_TOP)
+         for (i = 0; i < h; i++)
+             // top
+             memcpy(buf - (i + 1) * wrap, buf, width + w + w);
+     if (sides & EDGE_BOTTOM)
+         for (i = 0; i < h; i++)
+             // bottom
+             memcpy(last_line + (i + 1) * wrap, last_line, width + w + w);
+ }
+ static void clear_block_8_c(int16_t *block)
+ {
+     memset(block, 0, sizeof(int16_t) * 64);
+ }
+ static void clear_blocks_8_c(int16_t *blocks)
+ {
+     memset(blocks, 0, sizeof(int16_t) * 6 * 64);
+ }
  /* init static data */
  av_cold void ff_dsputil_static_init(void)
  {
Simple merge