#ifndef WH_SIMPLE_IDCT_H_97d3af3c_ #define WH_SIMPLE_IDCT_H_97d3af3c_ /* * This file was stolen from ffmpeg and modified for usability here. * The original is * * Copyright (c) 2001 Michael Niedermayer * * This version is a derivative work of that version. It is not free * software; it is licensed under the GNU Lesser General Public * License version 2.1, which places nontrivial restrictions on what * may be done with it. (I'm not terribly happy about that, but for * my purposes accepting LGPL-infected code is a lower price than * reimplementing it all myself.) * * The LGPL v2.1 as distributed with ffmpeg is in the accompanying file * `LGPL-v2.1'. */ void ff_simple_idct_put_8(uint8_t *dest, int line_size, DCTELEM *block); void ff_simple_idct_add_8(uint8_t *dest, int line_size, DCTELEM *block); void ff_simple_idct_8(DCTELEM *block); void ff_simple_idct_put_10(uint8_t *dest, int line_size, DCTELEM *block); void ff_simple_idct_add_10(uint8_t *dest, int line_size, DCTELEM *block); void ff_simple_idct_10(DCTELEM *block); /** * Special version of ff_simple_idct_10() which does dequantization * and scales by a factor of 2 more between the two IDCTs to account * for larger scale of input coefficients. */ void ff_prores_idct(DCTELEM *block, const int16_t *qmat); void ff_simple_idct_mmx(int16_t *block); void ff_simple_idct_add_mmx(uint8_t *dest, int line_size, int16_t *block); void ff_simple_idct_put_mmx(uint8_t *dest, int line_size, int16_t *block); void ff_simple_idct248_put(uint8_t *dest, int line_size, DCTELEM *block); void ff_simple_idct84_add(uint8_t *dest, int line_size, DCTELEM *block); void ff_simple_idct48_add(uint8_t *dest, int line_size, DCTELEM *block); void ff_simple_idct44_add(uint8_t *dest, int line_size, DCTELEM *block); #endif