summaryrefslogtreecommitdiff
path: root/libavcodec/simple_idct.c
diff options
context:
space:
mode:
authorMartin Vignali <martin.vignali@gmail.com>2018-11-17 23:37:50 +0100
committerMartin Vignali <martin.vignali@gmail.com>2018-12-02 12:55:53 +0100
commit6a583261ea631e6da5593c4477e36fde9bc731ab (patch)
tree13498bb5f70be3d53a1ff57bdf55728933f72181 /libavcodec/simple_idct.c
parentfddc92d45479950e5a2a718563f6347e26bc3c11 (diff)
downloadffmpeg-6a583261ea631e6da5593c4477e36fde9bc731ab.tar.gz
avcodec/proresdec : add 12b prores idct
based on patch by Kieran Kunhya
Diffstat (limited to 'libavcodec/simple_idct.c')
-rw-r--r--libavcodec/simple_idct.c16
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);
+ }
+}