summaryrefslogtreecommitdiff
path: root/src/libffmpeg/libavcodec/dsputil.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libffmpeg/libavcodec/dsputil.h')
-rw-r--r--src/libffmpeg/libavcodec/dsputil.h49
1 files changed, 14 insertions, 35 deletions
diff --git a/src/libffmpeg/libavcodec/dsputil.h b/src/libffmpeg/libavcodec/dsputil.h
index 730e1489d..83c0c4b23 100644
--- a/src/libffmpeg/libavcodec/dsputil.h
+++ b/src/libffmpeg/libavcodec/dsputil.h
@@ -65,23 +65,16 @@ extern uint8_t cropTbl[256 + 2 * MAX_NEG_CROP];
/* VP3 DSP functions */
void vp3_dsp_init_c(void);
-void vp3_idct_put_c(int16_t *input_data, int16_t *dequant_matrix,
- int coeff_count, uint8_t *dest, int stride);
-void vp3_idct_add_c(int16_t *input_data, int16_t *dequant_matrix,
- int coeff_count, uint8_t *dest, int stride);
+void vp3_idct_c(int16_t *input_data, int16_t *dequant_matrix,
+ int coeff_count, DCTELEM *output_data);
void vp3_dsp_init_mmx(void);
-void vp3_idct_put_mmx(int16_t *input_data, int16_t *dequant_matrix,
- int coeff_count, uint8_t *dest, int stride);
-void vp3_idct_add_mmx(int16_t *input_data, int16_t *dequant_matrix,
- int coeff_count, uint8_t *dest, int stride);
+void vp3_idct_mmx(int16_t *input_data, int16_t *dequant_matrix,
+ int coeff_count, DCTELEM *output_data);
void vp3_dsp_init_sse2(void);
-void vp3_idct_put_sse2(int16_t *input_data, int16_t *dequant_matrix,
- int coeff_count, uint8_t *dest, int stride);
-void vp3_idct_add_sse2(int16_t *input_data, int16_t *dequant_matrix,
- int coeff_count, uint8_t *dest, int stride);
-
+void vp3_idct_sse2(int16_t *input_data, int16_t *dequant_matrix,
+ int coeff_count, DCTELEM *output_data);
/* minimum alignment rules ;)
if u notice errors in the align stuff, need more alignment for some asm code for some cpu
@@ -147,6 +140,7 @@ typedef struct DSPContext {
void (*get_pixels)(DCTELEM *block/*align 16*/, const uint8_t *pixels/*align 8*/, int line_size);
void (*diff_pixels)(DCTELEM *block/*align 16*/, const uint8_t *s1/*align 8*/, const uint8_t *s2/*align 8*/, int stride);
void (*put_pixels_clamped)(const DCTELEM *block/*align 16*/, uint8_t *pixels/*align 8*/, int line_size);
+ void (*put_signed_pixels_clamped)(const DCTELEM *block/*align 16*/, uint8_t *pixels/*align 8*/, int line_size);
void (*add_pixels_clamped)(const DCTELEM *block/*align 16*/, uint8_t *pixels/*align 8*/, int line_size);
/**
* translational global motion compensation.
@@ -321,32 +315,16 @@ typedef struct DSPContext {
/**
* This function is responsible for taking a block of zigzag'd,
- * quantized DCT coefficients, reconstructing the original block of
- * samples, and placing it into the output.
- * @param input_data 64 zigzag'd, quantized DCT coefficients
- * @param dequant_matrix 64 zigzag'd quantizer coefficients
- * @param coeff_count index of the last coefficient
- * @param dest the final output location where the transformed samples
- * are to be placed
- * @param stride the width in 8-bit samples of a line on this plane
- */
- void (*vp3_idct_put)(int16_t *input_data, int16_t *dequant_matrix,
- int coeff_count, uint8_t *dest, int stride);
-
- /**
- * This function is responsible for taking a block of zigzag'd,
- * quantized DCT coefficients, reconstructing the original block of
- * samples, and adding the transformed samples to an existing block of
- * samples in the output.
+ * quantized DCT coefficients and reconstructing the original block of
+ * samples.
* @param input_data 64 zigzag'd, quantized DCT coefficients
* @param dequant_matrix 64 zigzag'd quantizer coefficients
* @param coeff_count index of the last coefficient
- * @param dest the final output location where the transformed samples
- * are to be placed
- * @param stride the width in 8-bit samples of a line on this plane
+ * @param output_samples space for 64 DCTELEMs where the transformed
+ * samples will be stored
*/
- void (*vp3_idct_add)(int16_t *input_data, int16_t *dequant_matrix,
- int coeff_count, uint8_t *dest, int stride);
+ void (*vp3_idct)(int16_t *input_data, int16_t *dequant_matrix,
+ int coeff_count, DCTELEM *output_samples);
} DSPContext;
@@ -400,6 +378,7 @@ extern int mm_flags;
void add_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size);
void put_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size);
+void put_signed_pixels_clamped_mmx(const DCTELEM *block, uint8_t *pixels, int line_size);
static inline void emms(void)
{