mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
2a88d989cb
--HG-- rename : media/libtheora/lib/dec/apiwrapper.c => media/libtheora/lib/apiwrapper.c rename : media/libtheora/lib/dec/apiwrapper.h => media/libtheora/lib/apiwrapper.h rename : media/libtheora/lib/dec/bitpack.c => media/libtheora/lib/bitpack.c rename : media/libtheora/lib/dec/bitpack.h => media/libtheora/lib/bitpack.h rename : media/libtheora/lib/dec/dct.h => media/libtheora/lib/dct.h rename : media/libtheora/lib/dec/decapiwrapper.c => media/libtheora/lib/decapiwrapper.c rename : media/libtheora/lib/dec/decinfo.c => media/libtheora/lib/decinfo.c rename : media/libtheora/lib/dec/decint.h => media/libtheora/lib/decint.h rename : media/libtheora/lib/dec/decode.c => media/libtheora/lib/decode.c rename : media/libtheora/lib/dec/dequant.c => media/libtheora/lib/dequant.c rename : media/libtheora/lib/dec/dequant.h => media/libtheora/lib/dequant.h rename : media/libtheora/lib/dec/fragment.c => media/libtheora/lib/fragment.c rename : media/libtheora/lib/dec/huffdec.c => media/libtheora/lib/huffdec.c rename : media/libtheora/lib/dec/huffdec.h => media/libtheora/lib/huffdec.h rename : media/libtheora/lib/dec/huffman.h => media/libtheora/lib/huffman.h rename : media/libtheora/lib/dec/idct.c => media/libtheora/lib/idct.c rename : media/libtheora/lib/dec/info.c => media/libtheora/lib/info.c rename : media/libtheora/lib/dec/internal.c => media/libtheora/lib/internal.c rename : media/libtheora/lib/dec/ocintrin.h => media/libtheora/lib/ocintrin.h rename : media/libtheora/lib/dec/quant.c => media/libtheora/lib/quant.c rename : media/libtheora/lib/dec/quant.h => media/libtheora/lib/quant.h rename : media/libtheora/lib/dec/state.c => media/libtheora/lib/state.c rename : media/libtheora/lib/dec/x86/mmxfrag.c => media/libtheora/lib/x86/mmxfrag.c rename : media/libtheora/lib/dec/x86/mmxidct.c => media/libtheora/lib/x86/mmxidct.c rename : media/libtheora/lib/dec/x86/mmxstate.c => media/libtheora/lib/x86/mmxstate.c rename : media/libtheora/lib/dec/x86/x86int.h => media/libtheora/lib/x86/x86int.h rename : media/libtheora/lib/dec/x86/x86state.c => media/libtheora/lib/x86/x86state.c rename : media/libtheora/lib/dec/x86_vc/mmxfrag.c => media/libtheora/lib/x86_vc/mmxfrag.c rename : media/libtheora/lib/dec/x86_vc/mmxidct.c => media/libtheora/lib/x86_vc/mmxidct.c rename : media/libtheora/lib/dec/x86_vc/mmxstate.c => media/libtheora/lib/x86_vc/mmxstate.c rename : media/libtheora/lib/dec/x86_vc/x86int.h => media/libtheora/lib/x86_vc/x86int.h rename : media/libtheora/lib/dec/x86_vc/x86state.c => media/libtheora/lib/x86_vc/x86state.c
88 lines
2.9 KiB
C
88 lines
2.9 KiB
C
/********************************************************************
|
|
* *
|
|
* THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. *
|
|
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
|
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
|
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
|
* *
|
|
* THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 *
|
|
* by the Xiph.Org Foundation and contributors http://www.xiph.org/ *
|
|
* *
|
|
********************************************************************
|
|
|
|
function:
|
|
last mod: $Id: fragment.c 16503 2009-08-22 18:14:02Z giles $
|
|
|
|
********************************************************************/
|
|
#include <string.h>
|
|
#include "internal.h"
|
|
|
|
void oc_frag_copy(const oc_theora_state *_state,unsigned char *_dst,
|
|
const unsigned char *_src,int _ystride){
|
|
(*_state->opt_vtable.frag_copy)(_dst,_src,_ystride);
|
|
}
|
|
|
|
void oc_frag_copy_c(unsigned char *_dst,const unsigned char *_src,int _ystride){
|
|
int i;
|
|
for(i=8;i-->0;){
|
|
memcpy(_dst,_src,8*sizeof(*_dst));
|
|
_dst+=_ystride;
|
|
_src+=_ystride;
|
|
}
|
|
}
|
|
|
|
void oc_frag_recon_intra(const oc_theora_state *_state,unsigned char *_dst,
|
|
int _ystride,const ogg_int16_t _residue[64]){
|
|
_state->opt_vtable.frag_recon_intra(_dst,_ystride,_residue);
|
|
}
|
|
|
|
void oc_frag_recon_intra_c(unsigned char *_dst,int _ystride,
|
|
const ogg_int16_t _residue[64]){
|
|
int i;
|
|
for(i=0;i<8;i++){
|
|
int j;
|
|
for(j=0;j<8;j++)_dst[j]=OC_CLAMP255(_residue[i*8+j]+128);
|
|
_dst+=_ystride;
|
|
}
|
|
}
|
|
|
|
void oc_frag_recon_inter(const oc_theora_state *_state,unsigned char *_dst,
|
|
const unsigned char *_src,int _ystride,const ogg_int16_t _residue[64]){
|
|
_state->opt_vtable.frag_recon_inter(_dst,_src,_ystride,_residue);
|
|
}
|
|
|
|
void oc_frag_recon_inter_c(unsigned char *_dst,
|
|
const unsigned char *_src,int _ystride,const ogg_int16_t _residue[64]){
|
|
int i;
|
|
for(i=0;i<8;i++){
|
|
int j;
|
|
for(j=0;j<8;j++)_dst[j]=OC_CLAMP255(_residue[i*8+j]+_src[j]);
|
|
_dst+=_ystride;
|
|
_src+=_ystride;
|
|
}
|
|
}
|
|
|
|
void oc_frag_recon_inter2(const oc_theora_state *_state,unsigned char *_dst,
|
|
const unsigned char *_src1,const unsigned char *_src2,int _ystride,
|
|
const ogg_int16_t _residue[64]){
|
|
_state->opt_vtable.frag_recon_inter2(_dst,_src1,_src2,_ystride,_residue);
|
|
}
|
|
|
|
void oc_frag_recon_inter2_c(unsigned char *_dst,const unsigned char *_src1,
|
|
const unsigned char *_src2,int _ystride,const ogg_int16_t _residue[64]){
|
|
int i;
|
|
for(i=0;i<8;i++){
|
|
int j;
|
|
for(j=0;j<8;j++)_dst[j]=OC_CLAMP255(_residue[i*8+j]+(_src1[j]+_src2[j]>>1));
|
|
_dst+=_ystride;
|
|
_src1+=_ystride;
|
|
_src2+=_ystride;
|
|
}
|
|
}
|
|
|
|
void oc_restore_fpu(const oc_theora_state *_state){
|
|
_state->opt_vtable.restore_fpu();
|
|
}
|
|
|
|
void oc_restore_fpu_c(void){}
|