Commit 23de9e91 authored by Michael Niedermayer's avatar Michael Niedermayer

Merge commit '68d8238c'

* commit '68d8238c':
  hpeldsp: Add half-pel functions (currently copies of dsputil)

Conflicts:
	libavcodec/hpeldsp.c
	libavcodec/hpeldsp.h
	libavcodec/hpeldsp_template.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents 6c9d28a2 68d8238c
......@@ -28,12 +28,13 @@
*/
#include "libavutil/attributes.h"
#include "libavutil/intreadwrite.h"
#include "hpeldsp.h"
#define BIT_DEPTH 8
#include "hpeldsp_template.c"
av_cold void ff_hpeldsp_init(HpelDSPContext* c, int flags)
av_cold void ff_hpeldsp_init(HpelDSPContext *c, int flags)
{
#define hpel_funcs(prefix, idx, num) \
c->prefix ## _pixels_tab idx [0] = prefix ## _pixels ## num ## _8_c; \
......
......@@ -32,9 +32,12 @@
#include <stddef.h>
/* add and put pixel (decoding) */
// blocksizes for op_pixels_func are 8x4,8x8 16x8 16x16
// h for op_pixels_func is limited to {width/2, width} but never larger
// blocksizes for hpel_pixels_func are 8x4,8x8 16x8 16x16
// h for hpel_pixels_func is limited to {width/2, width} but never larger
// than 16 and never smaller than 4
typedef void (*hpel_pixels_func)(uint8_t *block /*align width (8 or 16)*/,
const uint8_t *pixels /*align 1*/,
ptrdiff_t line_size, int h);
typedef void (*op_pixels_func)(uint8_t *block /*align width (8 or 16)*/,
const uint8_t *pixels /*align 1*/,
ptrdiff_t line_size, int h);
......@@ -53,7 +56,7 @@ typedef struct HpelDSPContext {
* @param line_size number of bytes in a horizontal line of block
* @param h height
*/
op_pixels_func put_pixels_tab[4][4];
hpel_pixels_func put_pixels_tab[4][4];
/**
* Halfpel motion compensation with rounding (a+b+1)>>1.
......@@ -65,7 +68,7 @@ typedef struct HpelDSPContext {
* @param line_size number of bytes in a horizontal line of block
* @param h height
*/
op_pixels_func avg_pixels_tab[4][4];
hpel_pixels_func avg_pixels_tab[4][4];
/**
* Halfpel motion compensation with no rounding (a+b)>>1.
......@@ -77,7 +80,7 @@ typedef struct HpelDSPContext {
* @param line_size number of bytes in a horizontal line of block
* @param h height
*/
op_pixels_func put_no_rnd_pixels_tab[4][4];
hpel_pixels_func put_no_rnd_pixels_tab[4][4];
/**
* Halfpel motion compensation with no rounding (a+b)>>1.
......@@ -89,10 +92,10 @@ typedef struct HpelDSPContext {
* @param line_size number of bytes in a horizontal line of block
* @param h height
*/
op_pixels_func avg_no_rnd_pixels_tab[4];
hpel_pixels_func avg_no_rnd_pixels_tab[4];
} HpelDSPContext;
void ff_hpeldsp_init(HpelDSPContext* p, int flags);
void ff_hpeldsp_init(HpelDSPContext *c, int flags);
void ff_hpeldsp_init_alpha(HpelDSPContext* c, int flags);
void ff_hpeldsp_init_arm(HpelDSPContext* c, int flags);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment