[theora-dev] theorarm build

Dave Milici davemilici at sbcglobal.net
Wed Aug 18 08:23:45 PDT 2010


Hi--

I had forgotten about posting any patches, so thanks for pinging me.

There were some problems with resolving the ARM assembly functions vs the C 
functions they were supposed to replace. There were also some runtime crashes 
with at least one of the replacement decode.c functions, and the makefile 
omitted the corresponding .s files needed to replace them, so I left them 
disabled. The speedup on ARM926 is still significant, ~2x avg.

Attached is bzipped archive of the patches, plus the install.sh build script we 
use in our build system with arm-linux-gcc. Don't know if bzip attachment is 
acceptable on newsgroup, though I'll try updating my post.

--DaveM



----- Original Message ----
From: Dave Milici <davemilici at sbcglobal.net>
To: theora-dev at xiph.org
Sent: Sat, July 31, 2010 10:37:11 AM
Subject: RE: [theora-dev] theorarm build

> (4) The ARMstate.c file had a couple mismatched function parameter  
> types which needed fixing.

Of all the steps which needed manual intervention, this one seemed to be the 
most suspicious. Comments?

--- theorarm-merge-branch/lib/arm/ARMstate.c    2010-07-23 17:41:45.000000000 
-0700
+++ theorarm-merge-branch.saved/lib/arm/ARMstate.c    2010-07-14 
11:43:19.000000000 -0700
@@ -26,7 +26,7 @@
                            const ptrdiff_t *_fragis,
                            const ptrdiff_t *frag_buf_offs);

-static void oc_state_frag_copy_list_arm(const oc_theora_state *_state,
+void oc_state_frag_copy_list_arm(const oc_theora_state *_state,
  const ptrdiff_t *_fragis,ptrdiff_t _nfragis,
  int _dst_frame,int _src_frame,int _pli){
   const ptrdiff_t     *frag_buf_offs;
@@ -43,7 +43,7 @@
                    frag_buf_offs);
}

-void oc_state_loop_filter_frag_rows_arm(const oc_theora_state *_state,signed 
char*_bv,
+void oc_state_loop_filter_frag_rows_arm(const oc_theora_state *_state,int 
_bv[256],
  int _refi,int _pli,int _fragy0,int _fragy_end){
   const oc_fragment_plane *fplane;
   const oc_fragment       *frags;
@@ -83,7 +83,7 @@
                                        nhfrags);
}

-static void oc_state_frag_recon_arm(const oc_theora_state *_state,ptrdiff_t 
_fragi,
+void oc_state_frag_recon_arm(const oc_theora_state *_state,ptrdiff_t _fragi,
  int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant){
   unsigned char *dst;
   ptrdiff_t      frag_buf_off;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: theorarm.patches.tar.bz2
Type: application/octet-stream
Size: 21189 bytes
Desc: not available
Url : http://lists.xiph.org/pipermail/theora-dev/attachments/20100818/c6994473/attachment-0001.obj 


More information about the theora-dev mailing list