Comments (14)
dwebp behaves the same.
$ examples/dwebp examples/mytest.webp -o foo.ppm
Assertion failed: (v >= -255 && v <= 255 + 255), function clip_8b, file dsp.c,
line 54.
Abort trap
Original comment by [email protected]
on 30 Oct 2010 at 11:00
from webp.
thanks for the bug report. Before we test further, it seems you have a newer
version of libvpx than the libpwebp version. can you go to an earlier build of
libvpx to try?
also, can you try the standalone lightweight decoder? libwebp-decode available
on
www.webmproject.com
Original comment by [email protected]
on 31 Oct 2010 at 1:57
from webp.
Hi Rob
libvpx is not used for decoding in my program. Also, as you see from my
follow-up comment, dwebp in libwebp is affected identically. Does that help?
--Toby
Original comment by [email protected]
on 31 Oct 2010 at 2:15
from webp.
yes, thanks. will investigate
Original comment by [email protected]
on 31 Oct 2010 at 2:24
from webp.
I misspoke when I said "correctly decodes test.webp" -- it decodes, but
incorrectly per #23. I should have said, it just does not abort.
Original comment by [email protected]
on 31 Oct 2010 at 2:38
from webp.
Toby,
hmm... can't reproduce here with 10.4.0 and gcc 4.2.1 (both bugs).
Could you try upgrading you gcc system if possible? Otherwise, could you send
the full
call stack (with, e.g., gdb)?
Here's mine:
> gcc --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Original comment by [email protected]
on 31 Oct 2010 at 2:53
from webp.
Pascal,
The problem manifests on PowerPC (not on Intel) - running natively on a 10.4 or
10.5 system only.
Latest Xcode Tools for these systems are 2.5 and 3.1.4 respectively, which
include gcc versions 4.0.1 and 4.2.1 respectively.
On both these systems, I see either Abort, or a corrupt image, when I run:
$ examples/dwebp examples/test.webp -o foo.ppm
The only way you could reproduce this on an Intel Mac, or 10.6, is by the
following:
mb:libwebp toby$ CFLAGS="-arch ppc" ./configure
checking for a BSD-compatible install... /usr/bin/install -c
...
mb:libwebp toby$ make
make all-recursive
Making all in src
/bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I..
-I/src -arch ppc -MT bits.lo -MD -MP -MF .deps/bits.Tpo -c -o bits.lo bits.c
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I.. -I/src -arch ppc -MT bits.lo -MD -MP -MF .deps/bits.Tpo -c bits.c -fno-common -DPIC -o .libs/bits.o
...
gcc -dynamiclib ${wl}-flat_namespace ${wl}-undefined ${wl}suppress -o
.libs/libwebpdecode.0.0.0.dylib .libs/bits.o .libs/dsp.o .libs/frame.o
.libs/quant.o .libs/tree.o .libs/vp8.o .libs/webp.o .libs/yuv.o -arch ppc
-install_name /usr/local/lib/libwebpdecode.0.dylib -compatibility_version 1
-current_version 1.0 -Wl,-single_module
dsymutil .libs/libwebpdecode.0.0.0.dylib || :
warning: no debug symbols in executable (-arch ppc7400)
(cd .libs && rm -f libwebpdecode.0.dylib && ln -s libwebpdecode.0.0.0.dylib
libwebpdecode.0.dylib)
(cd .libs && rm -f libwebpdecode.dylib && ln -s libwebpdecode.0.0.0.dylib
libwebpdecode.dylib)
ar cru .libs/libwebpdecode.a bits.o dsp.o frame.o quant.o tree.o vp8.o webp.o
yuv.o
ranlib .libs/libwebpdecode.a
creating libwebpdecode.la
(cd .libs && rm -f libwebpdecode.la && ln -s ../libwebpdecode.la
libwebpdecode.la)
Making all in examples
gcc -DHAVE_CONFIG_H -I. -I.. -I../src -arch ppc -MT dwebp.o -MD -MP -MF
.deps/dwebp.Tpo -c -o dwebp.o dwebp.c
mv -f .deps/dwebp.Tpo .deps/dwebp.Po
/bin/sh ../libtool --tag=CC --mode=link gcc -arch ppc -o dwebp dwebp.o
../src/libwebpdecode.la
mkdir .libs
gcc -arch ppc -o .libs/dwebp dwebp.o ../src/.libs/libwebpdecode.dylib
creating dwebp
mb:libwebp toby$ file src/.libs/*
src/.libs/bits.o: Mach-O object ppc
src/.libs/dsp.o: Mach-O object ppc
src/.libs/frame.o: Mach-O object ppc
src/.libs/libwebpdecode.0.0.0.dylib: Mach-O dynamically linked shared
library ppc
src/.libs/libwebpdecode.0.0.0.dylib.dSYM: directory
src/.libs/libwebpdecode.0.dylib: Mach-O dynamically linked shared
library ppc
src/.libs/libwebpdecode.a: current ar archive random library
src/.libs/libwebpdecode.dylib: Mach-O dynamically linked shared
library ppc
src/.libs/libwebpdecode.la: libtool library file
src/.libs/libwebpdecode.lai: libtool library file
src/.libs/quant.o: Mach-O object ppc
src/.libs/tree.o: Mach-O object ppc
src/.libs/vp8.o: Mach-O object ppc
src/.libs/webp.o: Mach-O object ppc
src/.libs/yuv.o: Mach-O object ppc
mb:libwebp toby$ examples/dwebp examples/test.webp -o foo.ppm
Assertion failed: (v >= -255 && v <= 255 + 255), function clip_8b, file dsp.c,
line 54.
Abort trap
mb:libwebp toby$ gcc --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5664)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
mb:libwebp toby$ uname -a
Darwin mb.local 10.4.0 Darwin Kernel Version 10.4.0: Fri Apr 23 18:28:53 PDT
2010; root:xnu-1504.7.4~1/RELEASE_I386 i386
Here's a log of testing with gcc-4.2 on 10.5.8 (G5):
g5:libwebp toby$ CC=gcc-4.2 ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... ./install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking build system type... powerpc-apple-darwin9.8.0
checking host system type... powerpc-apple-darwin9.8.0
checking for style of include used by make... GNU
checking for gcc... gcc-4.2
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc-4.2 accepts -g... yes
checking for gcc-4.2 option to accept ISO C89... none needed
checking dependency style of gcc-4.2... gcc3
checking for a sed that does not truncate output...
/Volumes/data/Users/toby/bin/gsed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ld used by gcc-4.2...
/usr/libexec/gcc/powerpc-apple-darwin9/4.2.1/ld
checking if the linker (/usr/libexec/gcc/powerpc-apple-darwin9/4.2.1/ld) is GNU
ld... no
checking for /usr/libexec/gcc/powerpc-apple-darwin9/4.2.1/ld option to reload
object files... -r
...
g5:libwebp toby$ make -j4
make all-recursive
Making all in src
/bin/sh ../libtool --tag=CC --mode=compile gcc-4.2 -DHAVE_CONFIG_H -I. -I..
-I/src -g -O2 -MT bits.lo -MD -MP -MF .deps/bits.Tpo -c -o bits.lo bits.c
/bin/sh ../libtool --tag=CC --mode=compile gcc-4.2 -DHAVE_CONFIG_H -I. -I..
-I/src -g -O2 -MT dsp.lo -MD -MP -MF .deps/dsp.Tpo -c -o dsp.lo dsp.c
/bin/sh ../libtool --tag=CC --mode=compile gcc-4.2 -DHAVE_CONFIG_H -I. -I..
-I/src -g -O2 -MT frame.lo -MD -MP -MF .deps/frame.Tpo -c -o frame.lo frame.c
/bin/sh ../libtool --tag=CC --mode=compile gcc-4.2 -DHAVE_CONFIG_H -I. -I..
-I/src -g -O2 -MT quant.lo -MD -MP -MF .deps/quant.Tpo -c -o quant.lo quant.c
mkdir .libs
mkdir .libs
mkdir .libs
mkdir: .libs: File exists
mkdir: .libs: gcc-4.2 -DHAVE_CONFIG_H -I. -I.. -I/src -g -O2 -MT frame.lo -MD
-MP -MF .deps/frame.Tpo -c frame.c -fno-common -DPIC -o .libs/frame.o
File exists
gcc-4.2 -DHAVE_CONFIG_H -I. -I.. -I/src -g -O2 -MT quant.lo -MD -MP -MF .deps/quant.Tpo -c quant.c -fno-common -DPIC -o .libs/quant.o
...
gcc-4.2 -dynamiclib ${wl}-flat_namespace ${wl}-undefined ${wl}suppress -o
.libs/libwebpdecode.0.dylib .libs/bits.o .libs/dsp.o .libs/frame.o
.libs/quant.o .libs/tree.o .libs/vp8.o .libs/webp.o .libs/yuv.o -install_name
/usr/local/lib/libwebpdecode.0.dylib -compatibility_version 1 -current_version
1.0
(cd .libs && rm -f libwebpdecode.dylib && ln -s libwebpdecode.0.dylib
libwebpdecode.dylib)
(cd .libs && rm -f libwebpdecode.0.0.0.dylib && ln -s libwebpdecode.0.dylib
libwebpdecode.0.0.0.dylib)
ar cru .libs/libwebpdecode.a bits.o dsp.o frame.o quant.o tree.o vp8.o webp.o
yuv.o
ranlib .libs/libwebpdecode.a
creating libwebpdecode.la
(cd .libs && rm -f libwebpdecode.la && ln -s ../libwebpdecode.la
libwebpdecode.la)
Making all in examples
gcc-4.2 -DHAVE_CONFIG_H -I. -I.. -I../src -g -O2 -MT dwebp.o -MD -MP -MF
.deps/dwebp.Tpo -c -o dwebp.o dwebp.c
mv -f .deps/dwebp.Tpo .deps/dwebp.Po
/bin/sh ../libtool --tag=CC --mode=link gcc-4.2 -g -O2 -o dwebp dwebp.o
../src/libwebpdecode.la
mkdir .libs
gcc-4.2 -g -O2 -o .libs/dwebp dwebp.o ../src/.libs/libwebpdecode.0.0.0.dylib
creating dwebp
g5:libwebp toby$ examples/dwebp examples/test.webp -o foo.ppm
Assertion failed: (v >= -255 && v <= 255 + 255), function clip_8b, file dsp.c,
line 54.
Abort trap
Original comment by [email protected]
on 31 Oct 2010 at 5:06
from webp.
So, in summary, on ANY PowerPC system, I always see either Abort or corrupt
image, regardless of the version of gcc used (and in all cases using latest gcc
available for 10.4, 10.5).
As shown above, I *also* see the problem in Rosetta emulation on 10.6/Intel,
also using latest gcc with ppc as the target architecture. If you don't have
PowerPC hardware around, that may be the easiest route to reproduce it...
Original comment by [email protected]
on 31 Oct 2010 at 5:09
from webp.
would using the libvpx decoder for Power PC unblock you for now?
Original comment by [email protected]
on 31 Oct 2010 at 4:34
from webp.
I can certainly look at that route.
Btw, I implied at first that the Abort only happened on streams that I
generated. But through further testing I see that I usually get it on the
test.webp as well. I am not sure under what exact circumstances I get the
corrupt image (#23) from test.webp - the best I can say right now is that I
always get one or the other, on PPC.
Original comment by [email protected]
on 31 Oct 2010 at 4:59
from webp.
Richard, re (9)
I switched the plugin to use libvpx for decode and it works perfectly on
PowerPC.
Original comment by [email protected]
on 8 Nov 2010 at 2:31
from webp.
ok, cool. i also saw your update on the mailing list. Can you try the
libwebp-decode again? Pascal seems to have fixed the power pc endian issue
Original comment by [email protected]
on 9 Nov 2010 at 5:23
from webp.
I confirm this is solved by https://review.webmproject.org/1132
Thankyou!
Original comment by [email protected]
on 12 Nov 2010 at 12:07
from webp.
great!
Original comment by [email protected]
on 12 Nov 2010 at 6:06
- Changed state: Fixed
from webp.
Related Issues (20)
- Can't decode the webp file (11158X2156) HOT 1
- Add version information in the webpconv binary HOT 1
- Provide way to override output file if already present HOT 1
- missing padding byte in file HOT 1
- webpconv does not allow output filename to be specified HOT 1
- gif link issues for webpconv 0.0.5 HOT 1
- WIC component HOT 2
- Since 280c365 webp image with odd width fails to decode HOT 3
- webp (and webm) do not display in chrome HOT 1
- webpconv tool is slow to encode HOT 2
- JPEG image files grow much bigger after convert to webp HOT 3
- cwebp creates 0-byte output file upon bad input HOT 2
- add smoke tests for libwebp-decode [transfered from wrong bug list (webm)] HOT 2
- When could we get the webp decoders for mobiles? HOT 7
- Broken link to download page HOT 3
- Copy meta / EXIF data in to newly converted .webp file HOT 2
- Now we have WIC codec on Windows, how about other OS? HOT 2
- cwebp is slow HOT 7
- cwebp / dwebp binaries for windows HOT 4
- cwebp build instructions for Windows HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from webp.