[theora] Theora decoding problem on PowerPC

Mayer, Jim Jim.Mayer at xerox.com
Wed Sep 26 15:19:24 PDT 2007


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\1
91\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\1
91\195\175\194\191\194\191\027%@\236\235\027%G\195\175\194\191\194\191\1
95\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\19
1\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\19
1\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\19
1\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\19
1\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\1
91\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\191\194\1
91\195\175\194\191\194\191\027%@\236\235\027%G\195\175\194\191\194\191\1
95\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\19
1\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\19
1\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\19
1\194\191\195\175\194\191\194\191\195\175\194\191\194\191\195\175\194\19
1\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

 

 

 

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/theora/attachments/20070926/00d92a33/attachment-0001.html


More information about the theora mailing list