[theora] Theora decoding problem on PowerPC

Maik Merten maikmerten at gmx.net
Thu Sep 27 10:13:01 PDT 2007


Hi Jim,

thanks for reporting.

Can you try if alpha7 works for you? Beta1 features a new decoder which
most likely is undertested on PowerPC while the old decoder should run
on PowerPC without issues.

This of course wouldn't be a fix - but at least you may be able to
proceed working on your software and would give additional insights if
this indeed is an architecture related problem.

Thanks,

Maik


Mayer, Jim schrieb:
> Hi,
> 
>  
> 
> I’m attempting to decode Theora videos on a PowerPC running a Linux
> 2.6.19 kernel.  The version of GCC I’m cross-compiling from is  3.4.4.
> 
>  
> 
> The software versions I’m running are:
> 
>  
> 
> libogg-1.1.3
> 
> libpng-1.2.20
> 
> libtheora-1.0beta1
> 
> libvorbis-1.2.0
> 
>  
> 
> These are all the latest I was able to download.
> 
>  
> 
> Here’s a back trace I got while running “dump_video” under GDB (I’ve
> escaped non-ascii characters as “\xxx” for the purpose of keeping the
> mailer happy).  I get similar results using “player_example” and when
> using mplayer with libtheora support.  By the way, mplayer with native
> VP3 support works fine.
> 
>  
> 
>> gdb examples/.libs/dump_video
> 
> GNU gdb 6.4
> 
> Copyright 2005 Free Software Foundation, Inc.
> 
> GDB is free software, covered by the GNU General Public License, and you are
> 
> welcome to change it and/or distribute copies of it under certain
> conditions.
> 
> Type "show copying" to see the conditions.
> 
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> 
> This GDB was configured as "powerpc-wrs-linux-gnu"...Using host
> libthread_db library "/lib/libthread_db.so.1".
> 
>  
> 
> (gdb) source directories.gdb
> 
> (gdb) run examples/video.ogg > out
> 
> Starting program:
> /var/jlm/theora/libtheora-1.0beta1/examples/.libs/dump_video
> examples/video.ogg > out
> 
> Encoded by Xiph.Org libTheora I 20070915 3 2 1
> 
> theora comment header:
> 
>         ENCODER=ffmpeg2theora 0.19
> 
> Ogg logical stream 4aa501b6 is Theora 160x128 29.97 fps video
> 
> Encoded frame content is 160x120 with 0x0 offset
> 
>  
> 
> Program received signal SIGSEGV, Segmentation fault.
> 
> oc_frag_recon_inter2_c (
> 
>     _dst=0x300384b0
> "--------.......//000000.0550;\\{\205\212\214\226\232\220~rv\210\225\027%G\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\027%@\236\235\027%G\195\175\194\191\194\191\195\175\194\191\194\191\027%@\220|uw\200\207\217\225\231\232\227\226\227\236\027%G\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\027%@\233oi`ULFBDILLMNNOOQUYXSNKJIHHHHHHGFEEEEEEECCCCCCCDC?CB?F>",
> '!' <repeats 17 times>, '\025' <repeats 17 times>, "\032
> &'()********++,,,,,,,ht\025\020\036\020\0307"..., _dst_ystride=-192,
> 
>     _src1=0x300270b0 "%lu\n", _src1_ystride=-192, _src2=0x30026ff1
> <Address 0x30026ff1 out of bounds>,
> 
>     _src2_ystride=-192, _residue=0x7fabb2c0) at dec/fragment.c:77
> 
> 77            _dst[j]=OC_CLAMP255(res+((int)_src1[j]+_src2[j]>>1));
> 
> (gdb) where
> 
> #0  oc_frag_recon_inter2_c (
> 
>     _dst=0x300384b0
> "--------.......//000000.0550;\\{\205\212\214\226\232\220~rv\210\225\027%G\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\027%@\236\235\027%G\195\175\194\191\194\191\195\175\194\191\194\191\027%@\220|uw\200\207\217\225\231\232\227\226\227\236\027%G\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\191\027%@\233oi`ULFBDILLMNNOOQUYXSNKJIHHHHHHGFEEEEEEECCCCCCCDC?CB?F>",
> '!' <repeats 17 times>, '\025' <repeats 17 times>, "\032
> &'()********++,,,,,,,ht\025\020\036\020\0307"..., _dst_ystride=-192,
> 
>     _src1=0x300270b0 "%lu\n", _src1_ystride=-192, _src2=0x30026ff1
> <Address 0x30026ff1 out of bounds>,
> 
>     _src2_ystride=-192, _residue=0x7fabb2c0) at dec/fragment.c:77
> 
> #1  0x0ffcfca0 in oc_frag_recon_inter2 (_state=0x25, _dst=0x37 <Address
> 0x37 out of bounds>, _dst_ystride=110,
> 
>     _src1=0x0, _src1_ystride=0, _src2=0xffffffff <Address 0xffffffff out
> of bounds>, _src2_ystride=55, _residue=0x6e)
> 
>     at dec/fragment.c:64
> 
> #2  0x0ffcbfcc in oc_state_frag_recon_c (_state=0x1002f988, _frag=0x4,
> _pli=805491056, _dct_coeffs=0x37,
> 
>     _last_zzi=-24576, _ncoefs=-1, _dc_iquant=0, _ac_iquant=0x6e) at
> dec/state.c:888
> 
> #3  0x0ffcbfcc in oc_state_frag_recon_c (_state=0x1002f988, _frag=0x4,
> _pli=805491056, _dct_coeffs=0x37,
> 
>     _last_zzi=-24576, _ncoefs=-1, _dc_iquant=0, _ac_iquant=0x6e) at
> dec/state.c:888
> 
> #4  0x0ffcbfcc in oc_state_frag_recon_c (_state=0x1002f988, _frag=0x4,
> _pli=805491056, _dct_coeffs=0x37,
> 
>     _last_zzi=-24576, _ncoefs=-1, _dc_iquant=0, _ac_iquant=0x6e) at
> dec/state.c:888
> 
> #5  0x0ffcbfcc in oc_state_frag_recon_c (_state=0x1002f988, _frag=0x4,
> _pli=805491056, _dct_coeffs=0x37,
> 
>     _last_zzi=-24576, _ncoefs=-1, _dc_iquant=0, _ac_iquant=0x6e) at
> dec/state.c:888
> 
> #6  0x0ffcbfcc in oc_state_frag_recon_c (_state=0x1002f988, _frag=0x4,
> _pli=805491056, _dct_coeffs=0x37,
> 
>     _last_zzi=-24576, _ncoefs=-1, _dc_iquant=0, _ac_iquant=0x6e) at
> dec/state.c:888
> 
> #7  0x0ffcbfcc in oc_state_frag_recon_c (_state=0x1002f988, _frag=0x4,
> _pli=805491056, _dct_coeffs=0x37,
> 
>     _last_zzi=-24576, _ncoefs=-1, _dc_iquant=0, _ac_iquant=0x6e) at
> dec/state.c:888
> 
> #8  0x0ffcbfcc in oc_state_frag_recon_c (_state=0x1002f988, _frag=0x4,
> _pli=805491056, _dct_coeffs=0x37,
> 
>     _last_zzi=-24576, _ncoefs=-1, _dc_iquant=0, _ac_iquant=0x6e) at
> dec/state.c:888
> 
> #9  0x0ffcbfcc in oc_state_frag_recon_c (_state=0x1002f988, _frag=0x4,
> _pli=805491056, _dct_coeffs=0x37,
> 
>     _last_zzi=-24576, _ncoefs=-1, _dc_iquant=0, _ac_iquant=0x6e) at
> dec/state.c:888
> 
> #10 0x0ffcbfcc in oc_state_frag_recon_c (_state=0x1002f988, _frag=0x4,
> _pli=805491056, _dct_coeffs=0x37,
> 
>     _last_zzi=-24576, _ncoefs=-1, _dc_iquant=0, _ac_iquant=0x6e) at
> dec/state.c:888
> 
> Previous frame inner to this frame (corrupt stack?)
> 
>  
> 
> The input file was created using ffmpeg2theora and oggsplit from the
> file “Cirrot_sm.mpg” available on
> http://www.soest.hawaii.edu/HURL/video.html.  The exact sequence of
> commands was:
> 
>  
> 
>     ffmpeg2theora ~/video/Cirrot_sm.mpg -o sample.ogg
> 
>     oggsplit sample.ogg
> 
>     cp sample.c01.g01.ogg video.ogg
> 
>  
> 
> This file displays correctly on an Intel box running Centos 3.8.
> 
>  
> 
> Has anyone been able to use Theora on a PowerPC based system?  I’m
> generically suspicious of both tool-chain and byte order issues and
> would love to know what other peoples experiences were.
> 
>  
> 
> Thanks.
> 
>  
> 
> -- Jim Mayer
> 
>  
> 
>  
> 
>  
> 
>  
> 
>  
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> theora mailing list
> theora at xiph.org
> http://lists.xiph.org/mailman/listinfo/theora



More information about the theora mailing list