After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 500785 - Certain Cover Art (huge size) Not Being Displayed
Certain Cover Art (huge size) Not Being Displayed
Status: RESOLVED DUPLICATE of bug 494667
Product: rhythmbox
Classification: Other
Component: Plugins (other)
0.11.x
Other All
: Normal normal
: ---
Assigned To: RhythmBox Maintainers
RhythmBox Maintainers
Depends on:
Blocks:
 
 
Reported: 2007-12-01 01:44 UTC by Richi Plana
Modified: 2007-12-03 01:57 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Richi Plana 2007-12-01 01:44:06 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:
Comment 1 Ed Catmur 2007-12-02 20:20:26 UTC
>>> import gtk
>>> p = gtk.gdk.PixbufLoader()
>>> data = open("cover.jpg").read()
>>> p.write(data)
True
>>> p.close()
Traceback (most recent call last):
  • File "<stdin>", line 1 in <module>
gobject.GError: Error interpreting JPEG image file (Application
transferred too few scanlines)

Possibly a gdk-pixbuf issue, as opening that same image with
gtk.gdk.pixbuf_new_from_file() works fine.
Comment 2 Ed Catmur 2007-12-02 20:21:18 UTC
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)
Comment 3 Christophe Fergeau 2007-12-02 20:34:57 UTC
This looks like bug #494667. Bug #491063 has a workaround
Comment 4 Ed Catmur 2007-12-02 21:28:58 UTC
Yes, definitely.  I'll continue at bug 491063.
Comment 5 Ed Catmur 2007-12-02 21:38:20 UTC
Patch at bug 494667.
Comment 6 Richi Plana 2007-12-03 01:40:59 UTC
(In reply to comment #5)
> Patch at bug 494667.

Confirming that the patch to gdk-pixbuf fixes the problem for me.

Thanks.
Comment 7 Jonathan Matthew 2007-12-03 01:57:02 UTC
OK, I guess we don't need this bug any more.  Thanks, Ed.

*** This bug has been marked as a duplicate of 494667 ***