Mercurial > libavcodec.hg
comparison sparc/dsputil_vis.c @ 5618:ad0ab0eebd69 libavcodec
add simple_idct implemented in Sparc VIS
patch by Balatoni Denes % dbalatoni A interware P hu%
Original thread: Messages starting with:
[PATCH] SPARC VIS simple_idct *
| author | gpoirier |
|---|---|
| date | Thu, 30 Aug 2007 19:18:23 +0000 |
| parents | d5ba514e3f4a |
| children | c0f471cc871d |
comparison
equal
deleted
inserted
replaced
| 5617:4051bdeecabf | 5618:ad0ab0eebd69 |
|---|---|
| 32 #include <setjmp.h> | 32 #include <setjmp.h> |
| 33 | 33 |
| 34 #include "dsputil.h" | 34 #include "dsputil.h" |
| 35 | 35 |
| 36 #include "vis.h" | 36 #include "vis.h" |
| 37 | |
| 38 extern void ff_simple_idct_put_vis(uint8_t *dest, int line_size, DCTELEM *data); | |
| 39 extern void ff_simple_idct_add_vis(uint8_t *dest, int line_size, DCTELEM *data); | |
| 40 extern void ff_simple_idct_vis(DCTELEM *data); | |
| 37 | 41 |
| 38 /* The trick used in some of this file is the formula from the MMX | 42 /* The trick used in some of this file is the formula from the MMX |
| 39 * motion comp code, which is: | 43 * motion comp code, which is: |
| 40 * | 44 * |
| 41 * (x+y+1)>>1 == (x|y)-((x^y)>>1) | 45 * (x+y+1)>>1 == (x|y)-((x^y)>>1) |
| 4043 { | 4047 { |
| 4044 /* VIS specific optimisations */ | 4048 /* VIS specific optimisations */ |
| 4045 int accel = vis_level (); | 4049 int accel = vis_level (); |
| 4046 | 4050 |
| 4047 if (accel & ACCEL_SPARC_VIS) { | 4051 if (accel & ACCEL_SPARC_VIS) { |
| 4052 if(avctx->idct_algo==FF_IDCT_SIMPLEVIS){ | |
| 4053 c->idct_put = ff_simple_idct_put_vis; | |
| 4054 c->idct_add = ff_simple_idct_add_vis; | |
| 4055 c->idct = ff_simple_idct_vis; | |
| 4056 c->idct_permutation_type = FF_TRANSPOSE_IDCT_PERM; | |
| 4057 } | |
| 4058 | |
| 4048 c->put_pixels_tab[0][0] = MC_put_o_16_vis; | 4059 c->put_pixels_tab[0][0] = MC_put_o_16_vis; |
| 4049 c->put_pixels_tab[0][1] = MC_put_x_16_vis; | 4060 c->put_pixels_tab[0][1] = MC_put_x_16_vis; |
| 4050 c->put_pixels_tab[0][2] = MC_put_y_16_vis; | 4061 c->put_pixels_tab[0][2] = MC_put_y_16_vis; |
| 4051 c->put_pixels_tab[0][3] = MC_put_xy_16_vis; | 4062 c->put_pixels_tab[0][3] = MC_put_xy_16_vis; |
| 4052 | 4063 |
