From 6fdfe9a404d436f8e4832c8b191de0f9f5ef4aa4 Mon Sep 17 00:00:00 2001 From: Mike Melanson Date: Wed, 2 Aug 2006 07:55:43 +0000 Subject: more residual from latest FFmpeg sync CVS patchset: 8153 CVS date: 2006/08/02 07:55:43 --- src/libffmpeg/libavcodec/snow.h | 170 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 src/libffmpeg/libavcodec/snow.h (limited to 'src/libffmpeg/libavcodec/snow.h') diff --git a/src/libffmpeg/libavcodec/snow.h b/src/libffmpeg/libavcodec/snow.h new file mode 100644 index 000000000..26b30abe5 --- /dev/null +++ b/src/libffmpeg/libavcodec/snow.h @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2004 Michael Niedermayer + * Copyright (C) 2006 Robert Edele + * + * This library 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 of the License, or (at your option) any later version. + * + * This library 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 this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef _SNOW_H +#define _SNOW_H + +#include "dsputil.h" + +#define MID_STATE 128 + +#define MAX_DECOMPOSITIONS 8 +#define MAX_PLANES 4 +#define QSHIFT 5 +#define QROOT (1<>1]; + (*i)--; + } +} + +static always_inline void snow_interleave_line_footer(int * i, DWTELEM * low, DWTELEM * high){ + for (; (*i)>=0; (*i)-=2){ + low[(*i)+1] = high[(*i)>>1]; + low[*i] = low[(*i)>>1]; + } +} + +static always_inline void snow_horizontal_compose_lift_lead_out(int i, DWTELEM * dst, DWTELEM * src, DWTELEM * ref, int width, int w, int lift_high, int mul, int add, int shift){ + for(; i> shift); + } + + if((width^lift_high)&1){ + dst[w] = src[w] - ((mul * 2 * ref[w] + add) >> shift); + } +} + +static always_inline void snow_horizontal_compose_liftS_lead_out(int i, DWTELEM * dst, DWTELEM * src, DWTELEM * ref, int width, int w){ + for(; i> W_BS); + } + + if(width&1){ + dst[w] = src[w] - (((-2 * ref[w] + W_BO) - 4 * src[w]) >> W_BS); + } +} + +#endif -- cgit v1.2.3