summaryrefslogtreecommitdiff
path: root/libavcodec/ivi_dsp.h
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2011-12-06 14:50:32 +0100
committerKostya Shishkov <kostya.shishkov@gmail.com>2011-12-28 15:22:18 +0100
commitadfe0c942e71545f003f9c4d148fbf5d220681bc (patch)
tree024756c5f4566e29e11cefa53fd55647bcd589ea /libavcodec/ivi_dsp.h
parentbd96be6e2739dbe5b7a467a318ebfb6241c15eba (diff)
Indeo 4 decoder
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
Diffstat (limited to 'libavcodec/ivi_dsp.h')
-rw-r--r--libavcodec/ivi_dsp.h39
1 files changed, 38 insertions, 1 deletions
diff --git a/libavcodec/ivi_dsp.h b/libavcodec/ivi_dsp.h
index 9632966a9a..04385140f3 100644
--- a/libavcodec/ivi_dsp.h
+++ b/libavcodec/ivi_dsp.h
@@ -1,7 +1,7 @@
/*
* DSP functions for Indeo Video Interactive codecs (Indeo4 and Indeo5)
*
- * Copyright (c) 2009 Maxim Poliakovski
+ * Copyright (c) 2009-2011 Maxim Poliakovski
*
* This file is part of Libav.
*
@@ -44,6 +44,43 @@ void ff_ivi_recompose53(const IVIPlaneDesc *plane, uint8_t *dst,
const int dst_pitch, const int num_bands);
/**
+ * Haar wavelet recomposition filter for Indeo 4
+ *
+ * @param[in] plane pointer to the descriptor of the plane being processed
+ * @param[out] dst pointer to the destination buffer
+ * @param[in] dst_pitch pitch of the destination buffer
+ * @param[in] num_bands number of wavelet bands to be processed
+ */
+void ff_ivi_recompose_haar(const IVIPlaneDesc *plane, uint8_t *dst,
+ const int dst_pitch, const int num_bands);
+
+/**
+ * two-dimensional inverse Haar 8x8 transform for Indeo 4
+ *
+ * @param[in] in pointer to the vector of transform coefficients
+ * @param[out] out pointer to the output buffer (frame)
+ * @param[in] pitch pitch to move to the next y line
+ * @param[in] flags pointer to the array of column flags:
+ * != 0 - non_empty column, 0 - empty one
+ * (this array must be filled by caller)
+ */
+void ff_ivi_inverse_haar_8x8(const int32_t *in, int16_t *out, uint32_t pitch,
+ const uint8_t *flags);
+
+/**
+ * DC-only two-dimensional inverse Haar transform for Indeo 4.
+ * Performing the inverse transform in this case is equivalent to
+ * spreading DC_coeff >> 3 over the whole block.
+ *
+ * @param[in] in pointer to the dc coefficient
+ * @param[out] out pointer to the output buffer (frame)
+ * @param[in] pitch pitch to move to the next y line
+ * @param[in] blk_size transform block size
+ */
+void ff_ivi_dc_haar_2d(const int32_t *in, int16_t *out, uint32_t pitch,
+ int blk_size);
+
+/**
* two-dimensional inverse slant 8x8 transform
*
* @param[in] in pointer to the vector of transform coefficients