提交 bd9ea6a4 编写于 作者: M Michael Niedermayer

fixing missaligned memory accesses in fill_rectangle()

Originally committed as revision 3901 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 4b9ac0b5
......@@ -182,14 +182,14 @@ typedef struct H264Context{
* non zero coeff count cache.
* is 64 if not available.
*/
uint8_t non_zero_count_cache[6*8];
uint8_t non_zero_count_cache[6*8] __align8;
uint8_t (*non_zero_count)[16];
/**
* Motion vector cache.
*/
int16_t mv_cache[2][5*8][2];
int8_t ref_cache[2][5*8];
int16_t mv_cache[2][5*8][2] __align8;
int8_t ref_cache[2][5*8] __align8;
#define LIST_NOT_USED -1 //FIXME rename?
#define PART_NOT_AVAILABLE -2
......@@ -318,7 +318,7 @@ typedef struct H264Context{
uint8_t *chroma_pred_mode_table;
int last_qscale_diff;
int16_t (*mvd_table[2])[2];
int16_t mvd_cache[2][5*8][2];
int16_t mvd_cache[2][5*8][2] __align8;
uint8_t *direct_table;
uint8_t direct_cache[5*8];
......@@ -358,6 +358,7 @@ static inline void fill_rectangle(void *vp, int w, int h, int stride, uint32_t v
w *= size;
stride *= size;
assert((((int)vp)&(FFMIN(w, STRIDE_ALIGN)-1)) == 0);
//FIXME check what gcc generates for 64 bit on x86 and possible write a 32 bit ver of it
if(w==2 && h==2){
*(uint16_t*)(p + 0)=
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册