GNOME Bugzilla – Bug 500785
Certain Cover Art (huge size) Not Being Displayed
Last modified: 2007-12-03 01:57:02 UTC
Please describe the problem: After moving to rhythmbox-0.11-[23] as packaged by Fedora 8, I noticed that certain cover art that used to display in 0.10.x in F7 weren't in 0.11.x. Some cursory testing revealed that if I ran mogrify on the 6MB cover.jpg file with params "-quality 75 -size 500x500", I'd end up with a 112KB cover.jpg file which would display in artdisplay in 0.11.3. I tried running rhythmbox with "-D artdisplay" but that revealed no clues. Steps to reproduce: 1. Download the ff. image into a subdirectory with music files in it: http://richip.dhs.org/~richip/bad-cover/cover.jpg 2. Start Rhythmbox and enable Cover Art plugin 3. Play a file within that subdirectory Actual results: Expected results: Does this happen every time? Other information:
>>> import gtk >>> p = gtk.gdk.PixbufLoader() >>> data = open("cover.jpg").read() >>> p.write(data) True >>> p.close() Traceback (most recent call last):
+ Trace 180462
transferred too few scanlines) Possibly a gdk-pixbuf issue, as opening that same image with gtk.gdk.pixbuf_new_from_file() works fine.
Not a bindings issue: #include <gdk-pixbuf/gdk-pixbuf.h> #include <unistd.h> #include <fcntl.h> #include <stdlib.h> int main() { guchar *buf = malloc(10*1000*1000); int fd = open("cover.jpg", O_RDONLY); ssize_t n = read(fd, buf, 10*1000*1000); g_type_init(); g_message("read: %d", n); GdkPixbufLoader *loader = gdk_pixbuf_loader_new(); GError *error = NULL; gboolean result = gdk_pixbuf_loader_write(loader, buf, n, &error); g_message("write: %d", result); if (error) g_warning("error: %s %d %s", g_quark_to_string(error->domain), error->code, error->message); g_clear_error(&error); result = gdk_pixbuf_loader_close(loader, &error); g_message("close: %d", result); if (error) g_warning("error: %s %d %s", g_quark_to_string(error->domain), error->code, error->message); return 0; } $ gcc foo.c $(pkg-config --cflags --libs gdk-2.0) && ./a.out ** Message: read: 6656523 ** Message: write: 1 ** Message: close: 0 ** (process:25004): WARNING **: error: gdk-pixbuf-error-quark 0 Error interpreting JPEG image file (Application transferred too few scanlines)
This looks like bug #494667. Bug #491063 has a workaround
Yes, definitely. I'll continue at bug 491063.
Patch at bug 494667.
(In reply to comment #5) > Patch at bug 494667. Confirming that the patch to gdk-pixbuf fixes the problem for me. Thanks.
OK, I guess we don't need this bug any more. Thanks, Ed. *** This bug has been marked as a duplicate of 494667 ***