Okay, today I monitored the DBUS interface with dbus-monitor [0] to get a better understanding what is going on here. According to the specification [1], the image data is sent as a byte array of raw pixel data (no compression, PNG, JPEG, GIF or whatever). In my dbus-monitor output, there were a few notifications with successfully displayed images, and the arrays there look like standard image date with red, green, blue and alpha bytes (see the first log file). However, the other notifications that were not rendered, showed somehow "random" image data, but everytime the same data for a Twitter handle [2]. Also, if you look closely at the icon_data field, the byte counts are wrong: according to the field, the byte array should have 54*54*3 bytes (width*height*bytes per pixel), but in the first two log entries, there is too much data (8854 instead of 8748 bytes, which is not even divisible by 3!)
I tried to understand the code that generates the notifications, but unfortunatenly I was not able to understand it completely, nor do I see where it goes wrong. Perhaps the error is also in the notifcation library.
0: $ dbus-monitor "sender=:1.122, interface=org.freedesktop.Notifications" # where sender=:1.122 was the Polly instance
1: http://developer.gnome.org/notification-spec/#icons-and-images-formats
2: Twitter handles and first line of "random" image data, from the second log file:
$ grep -B 1 -A 15 'censored' polly-notifications-fail.log | grep -e "^ string " -e '^ ' |grep -v censored
string "qnavry_obuere" 2f 3f 61 30 40 62 32 42 64 32 42 64 30 40 62 2f 3f 61 2f 3f
string "qnavry_obuere" 2f 3f 61 30 40 62 32 42 64 32 42 64 30 40 62 2f 3f 61 2f 3f
string "qnavry_obuere" 2f 3f 61 30 40 62 32 42 64 32 42 64 30 40 62 2f 3f 61 2f 3f
string "papierschiff_" fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ff ff ff ff ff
string "papierschiff_" fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ff ff ff ff ff
string "scy" dc 7a 24 dc 7a 20 dc 7a 20 dd 79 21 df 7c 22 e3 80 22 ec 8b
string "Meeresbraut" 1f 20 24 1e 1f 23 1e 1f 23 1e 1e 20 1d 1d 1f 1c 1c 1e 19 19
string "Meeresbraut" 1f 20 24 1e 1f 23 1e 1f 23 1e 1e 20 1d 1d 1f 1c 1c 1e 19 19
string "larsan" f0 f1 f3 f1 f2 f4 f1 f2 f4 f2 f3 f5 f2 f3 f5 f3 f4 f6 f3 f4
string "felis_blue" 00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
string "felis_blue" 00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
string "Meeresbraut" 1f 20 24 1e 1f 23 1e 1f 23 1e 1e 20 1d 1d 1f 1c 1c 1e 19 19
string "scy" dc 7a 24 dc 7a 20 dc 7a 20 dd 79 21 df 7c 22 e3 80 22 ec 8b
string "felis_blue" 00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
string "felis_blue" 00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
string "papierschiff_" fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ff ff ff ff ff
Okay, today I monitored the DBUS interface with dbus-monitor [0] to get a better understanding what is going on here. According to the specification [1], the image data is sent as a byte array of raw pixel data (no compression, PNG, JPEG, GIF or whatever). In my dbus-monitor output, there were a few notifications with successfully displayed images, and the arrays there look like standard image date with red, green, blue and alpha bytes (see the first log file). However, the other notifications that were not rendered, showed somehow "random" image data, but everytime the same data for a Twitter handle [2]. Also, if you look closely at the icon_data field, the byte counts are wrong: according to the field, the byte array should have 54*54*3 bytes (width*height*bytes per pixel), but in the first two log entries, there is too much data (8854 instead of 8748 bytes, which is not even divisible by 3!)
I tried to understand the code that generates the notifications, but unfortunatenly I was not able to understand it completely, nor do I see where it goes wrong. Perhaps the error is also in the notifcation library.
0: $ dbus-monitor "sender=:1.122, interface= org.freedesktop .Notifications" # where sender=:1.122 was the Polly instance developer. gnome.org/ notification- spec/#icons- and-images- formats ions-fail. log | grep -e "^ string " -e '^ ' |grep -v censored
2f 3f 61 30 40 62 32 42 64 32 42 64 30 40 62 2f 3f 61 2f 3f
2f 3f 61 30 40 62 32 42 64 32 42 64 30 40 62 2f 3f 61 2f 3f
2f 3f 61 30 40 62 32 42 64 32 42 64 30 40 62 2f 3f 61 2f 3f
fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ff ff ff ff ff
fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ff ff ff ff ff
dc 7a 24 dc 7a 20 dc 7a 20 dd 79 21 df 7c 22 e3 80 22 ec 8b
1f 20 24 1e 1f 23 1e 1f 23 1e 1e 20 1d 1d 1f 1c 1c 1e 19 19
1f 20 24 1e 1f 23 1e 1f 23 1e 1e 20 1d 1d 1f 1c 1c 1e 19 19
f0 f1 f3 f1 f2 f4 f1 f2 f4 f2 f3 f5 f2 f3 f5 f3 f4 f6 f3 f4
00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
1f 20 24 1e 1f 23 1e 1f 23 1e 1e 20 1d 1d 1f 1c 1c 1e 19 19
dc 7a 24 dc 7a 20 dc 7a 20 dd 79 21 df 7c 22 e3 80 22 ec 8b
00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
00 02 06 01 00 05 03 00 04 01 01 03 00 02 01 00 03 01 02 01
fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ff ff ff ff ff
1: http://
2: Twitter handles and first line of "random" image data, from the second log file:
$ grep -B 1 -A 15 'censored' polly-notificat
string "qnavry_obuere"
string "qnavry_obuere"
string "qnavry_obuere"
string "papierschiff_"
string "papierschiff_"
string "scy"
string "Meeresbraut"
string "Meeresbraut"
string "larsan"
string "felis_blue"
string "felis_blue"
string "Meeresbraut"
string "scy"
string "felis_blue"
string "felis_blue"
string "papierschiff_"