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);
     }
   }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.