summaryrefslogtreecommitdiff
path: root/libavcodec/simple_idct.c
diff options
context:
space:
mode:
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);
+ }
+}