diff options
Diffstat (limited to 'libavcodec/simple_idct.c')
-rw-r--r-- | libavcodec/simple_idct.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libavcodec/simple_idct.c b/libavcodec/simple_idct.c index 2171d71d06..3b2e736538 100644 --- a/libavcodec/simple_idct.c +++ b/libavcodec/simple_idct.c @@ -251,3 +251,19 @@ void ff_prores_idct_10(int16_t *block, const int16_t *qmat) idctSparseCol_extrashift_10(block + i); } } + +void ff_prores_idct_12(int16_t *block, const int16_t *qmat) +{ + int i; + + for (i = 0; i < 64; i++) + block[i] *= qmat[i]; + + for (i = 0; i < 8; i++) + idctRowCondDC_int16_12bit(block + i*8, 0); + + for (i = 0; i < 8; i++) { + block[i] += 8192; + idctSparseCol_int16_12bit(block + i); + } +} |