xine-lib: xine-lib-1.2.13/src/video_dec/libmpeg2/idct.c File Reference

xine-lib 1.2.13-20230125hg15249

Macros | Functions | Variables
idct.c File Reference
`#include "config.h"`
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <inttypes.h>`
`#include "mpeg2_internal.h"`
`#include <xine/xineutils.h>`

## Macros
#define | W1 2841 /* 2048*sqrt (2)*cos (1*pi/16) */
#define | W2 2676 /* 2048*sqrt (2)*cos (2*pi/16) */
#define | W3 2408 /* 2048*sqrt (2)*cos (3*pi/16) */
#define | W5 1609 /* 2048*sqrt (2)*cos (5*pi/16) */
#define | W6 1108 /* 2048*sqrt (2)*cos (6*pi/16) */
#define | W7 565 /* 2048*sqrt (2)*cos (7*pi/16) */
#define | CLIP(i) ((clip_lut+384)[ (i)])

## Functions
static void | idct_row (int16_t *block)
static void | idct_col (int16_t *block)
static void | mpeg2_idct_copy_c (int16_t *block, uint8_t *dest, int stride)
static void | mpeg2_idct_add_c (int16_t *block, uint8_t *dest, int stride)
static void | mpeg2_idct_c (int16_t *block)
static void | mpeg2_zero_block_c (int16_t *wblock)
void | mpeg2_idct_init (uint32_t mm_accel)

## Variables
void(* | mpeg2_idct_copy )(int16_t *block, uint8_t *dest, int stride)
void(* | mpeg2_idct_add )(int16_t *block, uint8_t *dest, int stride)
void(* | mpeg2_idct )(int16_t *block)
void(* | mpeg2_zero_block )(int16_t *block)
static uint8_t | clip_lut [1024]

## Macro Definition Documentation

## ◆ CLIP

#define CLIP | ( |  | i | ) | ((clip_lut+384)[ (i)])

Referenced by mpeg2_idct_add_c(), mpeg2_idct_add_c(), mpeg2_idct_copy_c(), mpeg2_idct_copy_c(), and mpeg2_idct_init().

## ◆ W1

#define W1 2841 /* 2048*sqrt (2)*cos (1*pi/16) */

Referenced by idct_col(), idct_col(), idct_row(), and idct_row().

## ◆ W2

#define W2 2676 /* 2048*sqrt (2)*cos (2*pi/16) */

Referenced by idct_col(), idct_col(), idct_row(), and idct_row().

## ◆ W3

#define W3 2408 /* 2048*sqrt (2)*cos (3*pi/16) */

Referenced by idct_col(), idct_col(), idct_row(), and idct_row().

## ◆ W5

#define W5 1609 /* 2048*sqrt (2)*cos (5*pi/16) */

Referenced by idct_col(), idct_col(), idct_row(), and idct_row().

## ◆ W6

#define W6 1108 /* 2048*sqrt (2)*cos (6*pi/16) */

Referenced by idct_col(), idct_col(), idct_row(), and idct_row().

## ◆ W7

#define W7 565 /* 2048*sqrt (2)*cos (7*pi/16) */

Referenced by idct_col(), idct_col(), idct_row(), and idct_row().

## Function Documentation

## ◆ idct_col()

static void idct_col | ( | int16_t * | block | ) |
| inlinestatic

References W1, W2, W3, W5, W6, and W7.

Referenced by mpeg2_idct_add_c(), mpeg2_idct_add_c(), mpeg2_idct_c(), mpeg2_idct_copy_c(), and mpeg2_idct_copy_c().

## ◆ idct_row()

static void idct_row | ( | int16_t * | block | ) |
| inlinestatic

References W1, W2, W3, W5, W6, and W7.

Referenced by mpeg2_idct_add_c(), mpeg2_idct_add_c(), mpeg2_idct_c(), mpeg2_idct_copy_c(), and mpeg2_idct_copy_c().

## ◆ mpeg2_idct_add_c()

static void mpeg2_idct_add_c | ( | int16_t * | block,
|  | uint8_t * | dest,
|  | int | stride )
| static

References CLIP, idct_col(), and idct_row().

Referenced by mpeg2_idct_init(), and mpeg2_idct_init().

## ◆ mpeg2_idct_c()

static void mpeg2_idct_c | ( | int16_t * | block | ) |
| static

References idct_col(), and idct_row().

Referenced by mpeg2_idct_init().

## ◆ mpeg2_idct_copy_c()

static void mpeg2_idct_copy_c | ( | int16_t * | block,
|  | uint8_t * | dest,
|  | int | stride )
| static

References CLIP, idct_col(), and idct_row().

Referenced by mpeg2_idct_init(), and mpeg2_idct_init().

## ◆ mpeg2_idct_init()

void mpeg2_idct_init | ( | uint32_t | mm_accel | ) |

References clip_lut, MM_ACCEL_MLIB, MM_ACCEL_PPC_ALTIVEC, MM_ACCEL_X86_MMX, MM_ACCEL_X86_MMXEXT, mpeg2_idct, mpeg2_idct_add, mpeg2_idct_add_altivec(), mpeg2_idct_add_c(), mpeg2_idct_add_mlib(), mpeg2_idct_add_mlib_non_ieee(), mpeg2_idct_add_mmx(), mpeg2_idct_add_mmxext(), mpeg2_idct_altivec_init(), mpeg2_idct_c(), mpeg2_idct_copy, mpeg2_idct_copy_altivec(), mpeg2_idct_copy_c(), mpeg2_idct_copy_mlib_non_ieee(), mpeg2_idct_copy_mmx(), mpeg2_idct_copy_mmxext(), mpeg2_idct_mlib(), mpeg2_idct_mmx(), mpeg2_idct_mmx_init(), mpeg2_idct_mmxext(), mpeg2_zero_block, mpeg2_zero_block_c(), mpeg2_zero_block_mmx(), and NULL.

Referenced by mpeg2_accel(), and mpeg2_init().

## ◆ mpeg2_zero_block_c()

static void mpeg2_zero_block_c | ( | int16_t * | wblock | ) |
| static

Referenced by mpeg2_idct_init().

## Variable Documentation

## ◆ clip_lut

uint8_t clip_lut[1024]
| static

Referenced by mpeg2_idct_init().

## ◆ mpeg2_idct

void(* mpeg2_idct) (int16_t *block) | ( | int16_t * | block | ) |

Referenced by mpeg2_idct_init(), slice_xvmc_intra_DCT(), and slice_xvmc_non_intra_DCT().

## ◆ mpeg2_idct_add

void(* mpeg2_idct_add) (int16_t *block, uint8_t *dest, int stride) | ( | int16_t * | block,
|  | uint8_t * | dest,
|  | int | stride )

Referenced by mpeg2_idct_init(), mpeg2_idct_init(), slice_non_intra_DCT(), and slice_non_intra_DCT().

## ◆ mpeg2_idct_copy

void(* mpeg2_idct_copy) (int16_t *block, uint8_t *dest, int stride) | ( | int16_t * | block,
|  | uint8_t * | dest,
|  | int | stride )

Referenced by mpeg2_idct_init(), mpeg2_idct_init(), slice_intra_DCT(), and slice_intra_DCT().

## ◆ mpeg2_zero_block

void(* mpeg2_zero_block) (int16_t *block) | ( | int16_t * | block | ) |

Referenced by mpeg2_idct_init(), slice_xvmc_intra_DCT(), and slice_xvmc_non_intra_DCT().