libtheora MMX patch: works now
Andrew Chew <[email protected]>
| Newsgroups | gmane.comp.multimedia.ogg.theora.devel |
|---|---|
| Organization | Okashi Studios, Inc. |
| Message-ID | <[email protected]> |
With the patches I submitted so far, I integrated into my project, only to see a crash on video playback. Then went to try dump_video example (should have tried that first, but I wasn't thinking), and that crashed in the same place. Turns out the parameters to the call oc_state_get_mv_offsets had changed to take an array of ints for mvoffsets. Fixed this, and both dump_video and my project works great now. Patch is attached. Sorry for the trouble. But I think everything's working properly now. I'm going to wait until I see that everything is checked into head svn, and then pull this into my project for the rest of my developers. > _______________________________________________ theora-dev mailing list [email protected] http://lists.xiph.org/mailman/listinfo/theora-dev
mmxpatch2.txt
(text/plain, 1.1 KB)
--- lib/dec/x86_vc/mmxstate.c (revision 14725)
+++ lib/dec/x86_vc/mmxstate.c (working copy)
@@ -146,19 +146,18 @@
else{
int ref_framei;
int ref_ystride;
- int mvoffset0;
- int mvoffset1;
+ int mvoffsets[2];
ref_framei=_state->ref_frame_idx[OC_FRAME_FOR_MODE[_frag->mbmode]];
ref_ystride=_state->ref_frame_bufs[ref_framei][_pli].stride;
- if(oc_state_get_mv_offsets(_state,&mvoffset0,&mvoffset1,_frag->mv[0],
+ if(oc_state_get_mv_offsets(_state,mvoffsets,_frag->mv[0],
_frag->mv[1],ref_ystride,_pli)>1){
oc_frag_recon_inter2_mmx(_frag->buffer[dst_framei],dst_ystride,
- _frag->buffer[ref_framei]+mvoffset0,ref_ystride,
- _frag->buffer[ref_framei]+mvoffset1,ref_ystride,res_buf);
+ _frag->buffer[ref_framei]+mvoffsets[0],ref_ystride,
+ _frag->buffer[ref_framei]+mvoffsets[1],ref_ystride,res_buf);
}
else{
oc_frag_recon_inter_mmx(_frag->buffer[dst_framei],dst_ystride,
- _frag->buffer[ref_framei]+mvoffset0,ref_ystride,res_buf);
+ _frag->buffer[ref_framei]+mvoffsets[0],ref_ystride,res_buf);
}
}