OLD | NEW |
1 /* | 1 /* |
2 * VC-1 and WMV3 decoder - DSP functions | 2 * VC-1 and WMV3 decoder - DSP functions |
3 * Copyright (c) 2006 Konstantin Shishkov | 3 * Copyright (c) 2006 Konstantin Shishkov |
4 * | 4 * |
5 * This file is part of FFmpeg. | 5 * This file is part of FFmpeg. |
6 * | 6 * |
7 * FFmpeg is free software; you can redistribute it and/or | 7 * FFmpeg is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Lesser General Public | 8 * modify it under the terms of the GNU Lesser General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2.1 of the License, or (at your option) any later version. | 10 * version 2.1 of the License, or (at your option) any later version. |
(...skipping 563 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
574 } | 574 } |
575 | 575 |
576 #define op_put(a, b) a = av_clip_uint8(b) | 576 #define op_put(a, b) a = av_clip_uint8(b) |
577 #define op_avg(a, b) a = (a + av_clip_uint8(b) + 1) >> 1 | 577 #define op_avg(a, b) a = (a + av_clip_uint8(b) + 1) >> 1 |
578 | 578 |
579 VC1_MSPEL_MC(op_put, put_) | 579 VC1_MSPEL_MC(op_put, put_) |
580 VC1_MSPEL_MC(op_avg, avg_) | 580 VC1_MSPEL_MC(op_avg, avg_) |
581 | 581 |
582 /* pixel functions - really are entry points to vc1_mspel_mc */ | 582 /* pixel functions - really are entry points to vc1_mspel_mc */ |
583 | 583 |
584 /* this one is defined in dsputil.c */ | |
585 void ff_put_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int r
nd); | |
586 void ff_avg_vc1_mspel_mc00_c(uint8_t *dst, const uint8_t *src, int stride, int r
nd); | |
587 | |
588 #define PUT_VC1_MSPEL(a, b)\ | 584 #define PUT_VC1_MSPEL(a, b)\ |
589 static void put_vc1_mspel_mc ## a ## b ##_c(uint8_t *dst, const uint8_t *src, in
t stride, int rnd) { \ | 585 static void put_vc1_mspel_mc ## a ## b ##_c(uint8_t *dst, const uint8_t *src, in
t stride, int rnd) { \ |
590 put_vc1_mspel_mc(dst, src, stride, a, b, rnd); \ | 586 put_vc1_mspel_mc(dst, src, stride, a, b, rnd); \ |
591 }\ | 587 }\ |
592 static void avg_vc1_mspel_mc ## a ## b ##_c(uint8_t *dst, const uint8_t *src, in
t stride, int rnd) { \ | 588 static void avg_vc1_mspel_mc ## a ## b ##_c(uint8_t *dst, const uint8_t *src, in
t stride, int rnd) { \ |
593 avg_vc1_mspel_mc(dst, src, stride, a, b, rnd); \ | 589 avg_vc1_mspel_mc(dst, src, stride, a, b, rnd); \ |
594 } | 590 } |
595 | 591 |
596 PUT_VC1_MSPEL(1, 0) | 592 PUT_VC1_MSPEL(1, 0) |
597 PUT_VC1_MSPEL(2, 0) | 593 PUT_VC1_MSPEL(2, 0) |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
657 dsp->avg_vc1_mspel_pixels_tab[ 7] = avg_vc1_mspel_mc31_c; | 653 dsp->avg_vc1_mspel_pixels_tab[ 7] = avg_vc1_mspel_mc31_c; |
658 dsp->avg_vc1_mspel_pixels_tab[ 8] = avg_vc1_mspel_mc02_c; | 654 dsp->avg_vc1_mspel_pixels_tab[ 8] = avg_vc1_mspel_mc02_c; |
659 dsp->avg_vc1_mspel_pixels_tab[ 9] = avg_vc1_mspel_mc12_c; | 655 dsp->avg_vc1_mspel_pixels_tab[ 9] = avg_vc1_mspel_mc12_c; |
660 dsp->avg_vc1_mspel_pixels_tab[10] = avg_vc1_mspel_mc22_c; | 656 dsp->avg_vc1_mspel_pixels_tab[10] = avg_vc1_mspel_mc22_c; |
661 dsp->avg_vc1_mspel_pixels_tab[11] = avg_vc1_mspel_mc32_c; | 657 dsp->avg_vc1_mspel_pixels_tab[11] = avg_vc1_mspel_mc32_c; |
662 dsp->avg_vc1_mspel_pixels_tab[12] = avg_vc1_mspel_mc03_c; | 658 dsp->avg_vc1_mspel_pixels_tab[12] = avg_vc1_mspel_mc03_c; |
663 dsp->avg_vc1_mspel_pixels_tab[13] = avg_vc1_mspel_mc13_c; | 659 dsp->avg_vc1_mspel_pixels_tab[13] = avg_vc1_mspel_mc13_c; |
664 dsp->avg_vc1_mspel_pixels_tab[14] = avg_vc1_mspel_mc23_c; | 660 dsp->avg_vc1_mspel_pixels_tab[14] = avg_vc1_mspel_mc23_c; |
665 dsp->avg_vc1_mspel_pixels_tab[15] = avg_vc1_mspel_mc33_c; | 661 dsp->avg_vc1_mspel_pixels_tab[15] = avg_vc1_mspel_mc33_c; |
666 } | 662 } |
OLD | NEW |