Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define LHFILTER(src) ((((src)[0]+(src)[1])*19 >> 1)-((src)[-1]+(src)[2 ])*2+(((src)[-2 ]+(src)[3 ])>>1)+8>>4)
- #define LVFILTER(src, i) ((((src)[0]+(src)[i])*19 >> 1)-((src)[-i]+(src)[2*i])*2+(((src)[-2*i]+(src)[3*i])>>1)+8>>4)
- static void bink2f_y_mc(Bink2Context *c, int x, int y,
- uint8_t *dst, int stride,
- uint8_t *src, int sstride,
- int width, int height,
- int mv_x, int mv_y, int mode)
- {
- uint8_t *msrc;
- msrc = src + mv_x + mv_y * sstride;
- ff_dlog(NULL, "%d: %dx%d | %dx%d\n", mode, x, y, mv_x, mv_y);
- if (mode == 0) {
- copy_block16(dst, msrc, stride, sstride, 16);
- } else if (mode == 1) {
- for (int j = 0; j < 16; j++) {
- for (int i = 0; i < 16; i++)
- dst[i] = av_clip_uint8(LHFILTER(msrc + i));
- dst += stride;
- msrc += sstride;
- }
- } else if (mode == 2) {
- for (int j = 0; j < 16; j++) {
- for (int i = 0; i < 16; i++)
- dst[i*stride] = av_clip_uint8(LVFILTER(msrc + i*sstride, sstride));
- dst += 1;
- msrc += 1;
- }
- } else if (mode == 3) {
- uint8_t temph[21*21] = { 0 };
- for (int j = 0; j < 16; j++) {
- for (int i = 0; i < 21; i++)
- temph[j*21+i+42] = av_clip_uint8(LHFILTER(msrc + i));
- msrc += sstride;
- }
- for (int j = 0; j < 16; j++) {
- for (int i = 0; i < 16; i++)
- dst[i*stride] = av_clip_uint8(LVFILTER(temph + i*21+42, 21));
- dst += 1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement