bug625773-r17780.patch 1.0 KB

123456789101112131415161718192021222324
  1. diff --git a/media/libtheora/lib/decode.c b/media/libtheora/lib/decode.c
  2. --- a/media/libtheora/lib/decode.c
  3. +++ b/media/libtheora/lib/decode.c
  4. @@ -2072,18 +2072,17 @@ static void oc_dec_init_dummy_frame(th_d
  5. sizeof(_dec->pp_frame_buf[0])*3);
  6. info=&_dec->state.info;
  7. yhstride=abs(_dec->state.ref_ystride[0]);
  8. yheight=info->frame_height+2*OC_UMV_PADDING;
  9. chstride=abs(_dec->state.ref_ystride[1]);
  10. cheight=yheight>>!(info->pixel_fmt&2);
  11. yplane_sz=yhstride*(size_t)yheight+16;
  12. cplane_sz=chstride*(size_t)cheight;
  13. - yoffset=_dec->state.ref_ystride[0]*(yheight-1)-
  14. - (OC_UMV_PADDING+OC_UMV_PADDING*(ptrdiff_t)yhstride);
  15. + yoffset=yhstride*(ptrdiff_t)(yheight-OC_UMV_PADDING-1)+OC_UMV_PADDING;
  16. memset(_dec->state.ref_frame_data[0]-yoffset,0x80,yplane_sz+2*cplane_sz);
  17. }
  18. int th_decode_packetin(th_dec_ctx *_dec,const ogg_packet *_op,
  19. ogg_int64_t *_granpos){
  20. int ret;
  21. if(_dec==NULL||_op==NULL)return TH_EFAULT;
  22. /*A completely empty packet indicates a dropped frame and is treated exactly