]> git.sesse.net Git - x264/blobdiff - common/dct.h
Fix unaligned accesses in bitstream writer
[x264] / common / dct.h
index 6d78bc75a8401fb7e99c9e9bf5bb30d7d1340bd7..14547aa030354b81954630099dbb8647d269ef9e 100644 (file)
@@ -95,10 +95,13 @@ typedef struct
     void (*add4x4_idct)  ( uint8_t *p_dst, int16_t dct[4][4] );
 
     void (*sub8x8_dct)   ( int16_t dct[4][4][4], uint8_t *pix1, uint8_t *pix2 );
+    void (*sub8x8_dct_dc)( int16_t dct[2][2], uint8_t *pix1, uint8_t *pix2 );
     void (*add8x8_idct)  ( uint8_t *p_dst, int16_t dct[4][4][4] );
+    void (*add8x8_idct_dc) ( uint8_t *p_dst, int16_t dct[2][2] );
 
     void (*sub16x16_dct) ( int16_t dct[16][4][4], uint8_t *pix1, uint8_t *pix2 );
     void (*add16x16_idct)( uint8_t *p_dst, int16_t dct[16][4][4] );
+    void (*add16x16_idct_dc) ( uint8_t *p_dst, int16_t dct[4][4] );
 
     void (*sub8x8_dct8)  ( int16_t dct[8][8], uint8_t *pix1, uint8_t *pix2 );
     void (*add8x8_idct8) ( uint8_t *p_dst, int16_t dct[8][8] );
@@ -115,9 +118,10 @@ typedef struct
 {
     void (*scan_8x8)( int16_t level[64], int16_t dct[8][8] );
     void (*scan_4x4)( int16_t level[16], int16_t dct[4][4] );
-    void (*sub_8x8)( int16_t level[64], const uint8_t *p_src, uint8_t *p_dst );
-    void (*sub_4x4)( int16_t level[16], const uint8_t *p_src, uint8_t *p_dst );
-    void (*interleave_8x8_cavlc)( int16_t *dst, int16_t *src );
+    int  (*sub_8x8)  ( int16_t level[64], const uint8_t *p_src, uint8_t *p_dst );
+    int  (*sub_4x4)  ( int16_t level[16], const uint8_t *p_src, uint8_t *p_dst );
+    int  (*sub_4x4ac)( int16_t level[16], const uint8_t *p_src, uint8_t *p_dst, int16_t *dc );
+    void (*interleave_8x8_cavlc)( int16_t *dst, int16_t *src, uint8_t *nnz );
 
 } x264_zigzag_function_t;