Browse Source

dsputil: Move copy_block functions to a separate header

tags/n1.2
Diego Biurrun 12 years ago
parent
commit
b9ba5253dd
4 changed files with 63 additions and 36 deletions
  1. +61
    -0
      libavcodec/copy_block.h
  2. +1
    -0
      libavcodec/dsputil.c
  3. +0
    -36
      libavcodec/dsputil.h
  4. +1
    -0
      libavcodec/sh4/qpel.c

+ 61
- 0
libavcodec/copy_block.h View File

@@ -0,0 +1,61 @@
/*
* This file is part of Libav.
*
* Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/

#ifndef AVCODEC_COPY_BLOCK_H
#define AVCODEC_COPY_BLOCK_H

#include <stdint.h>

#include "libavutil/intreadwrite.h"

static inline void copy_block8(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
{
int i;
for(i=0; i<h; i++)
{
AV_COPY64U(dst, src);
dst+=dstStride;
src+=srcStride;
}
}

static inline void copy_block9(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
{
int i;
for(i=0; i<h; i++)
{
AV_COPY64U(dst, src);
dst[8]= src[8];
dst+=dstStride;
src+=srcStride;
}
}

static inline void copy_block17(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
{
int i;
for(i=0; i<h; i++)
{
AV_COPY128U(dst, src);
dst[16]= src[16];
dst+=dstStride;
src+=srcStride;
}
}

#endif /* AVCODEC_COPY_BLOCK_H */

+ 1
- 0
libavcodec/dsputil.c View File

@@ -29,6 +29,7 @@


#include "libavutil/imgutils.h" #include "libavutil/imgutils.h"
#include "avcodec.h" #include "avcodec.h"
#include "copy_block.h"
#include "dsputil.h" #include "dsputil.h"
#include "simple_idct.h" #include "simple_idct.h"
#include "faandct.h" #include "faandct.h"


+ 0
- 36
libavcodec/dsputil.h View File

@@ -514,40 +514,4 @@ static int name16(void /*MpegEncContext*/ *s, uint8_t *dst, uint8_t *src, int st
return score;\ return score;\
} }



static inline void copy_block8(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
{
int i;
for(i=0; i<h; i++)
{
AV_COPY64U(dst, src);
dst+=dstStride;
src+=srcStride;
}
}

static inline void copy_block9(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
{
int i;
for(i=0; i<h; i++)
{
AV_COPY64U(dst, src);
dst[8]= src[8];
dst+=dstStride;
src+=srcStride;
}
}

static inline void copy_block17(uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
{
int i;
for(i=0; i<h; i++)
{
AV_COPY128U(dst, src);
dst[16]= src[16];
dst+=dstStride;
src+=srcStride;
}
}

#endif /* AVCODEC_DSPUTIL_H */ #endif /* AVCODEC_DSPUTIL_H */

+ 1
- 0
libavcodec/sh4/qpel.c View File

@@ -22,6 +22,7 @@
*/ */


#include "libavutil/common.h" #include "libavutil/common.h"
#include "libavcodec/copy_block.h"


#define PIXOP2(OPNAME, OP) \ #define PIXOP2(OPNAME, OP) \
\ \


Loading…
Cancel
Save