Summary: | Crash when stitching a panorama | ||
---|---|---|---|
Product: | [Applications] digikam | Reporter: | Axel Krebs <axel.krebs> |
Component: | Plugin-Generic-Panorama | Assignee: | Digikam Developers <digikam-bugs-null> |
Status: | RESOLVED NOT A BUG | ||
Severity: | crash | CC: | axel.krebs, benjamin.girault, caulier.gilles, derspargelstecher, Info, makozoe, mig, paulhholmes, syiad.al-duri, t.lattmann |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 7.6.0 | |
Sentry Crash Report: | |||
Attachments: |
New crash information added by DrKonqi
New crash information added by DrKonqi |
Description
Axel Krebs
2013-05-15 19:34:04 UTC
First of all, stitching jpegs into a tiff file doesn't make much sense, except for having an alpha channel on the output picture that shows where there is no data. Apart this case, tiff is a 16 bits color depth file format while jpegs are only 8 bits, hence you cannot expect to get a color depth of more than 8 bits. That being said, I tried both the plugin in digiKam and the stand-alone program, and stitched 2 jpegs into a tiff file without crash. Can you send me (possibly by private email) your files for me to try them and figure out the issue? From the bug report, and looking at the code, I see one possible issue in the way the pixmap sequence is handled (hard-coded number of frames), and maybe your system is missing the pixmap sequence (named "process-working", located in /usr/share/icons/oxygen/22x22/animations/process-working.png on my system) for some reason... I'll change the code not to hard-code the number of frames. *** Bug 320747 has been marked as a duplicate of this bug. *** Do you have the file "process-working.png" somewhere on your system (i.e. in a subdirectory of /usr/share/")? If not, this is a Ubuntu issue. Also, does the plugin work when stitching into JPEG? Created attachment 80382 [details]
New crash information added by DrKonqi
digikam (3.2.0) on KDE Platform 4.10.4 using Qt 4.8.4
- What I was doing when the application crashed:
Please compare recent Discussion with Benjamin Girault,
Instead of producing tif panoramas, first time jpg-panoramas.
Every attempt leads to crash.
KDE? >> digiKam does not startup anymore, even when marking "restart" in bug-reporting screen.
-- Backtrace (Reduced):
#6 isNull (this=0x646b2c61) at image/qpixmapdata_p.h:131
#7 QPixmap::isNull (this=this@entry=0x5d828170) at image/qpixmap.cpp:579
#8 0x00007fe577a5f499 in QPixmap::copy (this=this@entry=0x5d828170, rect=...) at image/qpixmap.cpp:382
#9 0x00007fe577a600a7 in QPixmap::QPixmap (this=0x7fff0ec25570, pixmap=...) at image/qpixmap.cpp:303
#10 0x00007fe57870a7a4 in KPixmapSequence::frameAt (this=0x5c775e60, index=2) at ../../kdeui/util/kpixmapsequence.cpp:143
To compare with digiKam/kipiplugin capabilities, I started HUGIN with the same (both) pics: crash! Bug-report from HUGIN: =========================================================================== *************** Panorama makefile generated by Hugin *************** =========================================================================== System information =========================================================================== Operating system: GNU/Linux Release: 3.8.0-25-generic Kernel version: #37-Ubuntu SMP Thu Jun 6 20:47:07 UTC 2013 Machine: x86_64 Disc usage Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf /dev/sda1 19G 7,3G 11G 42% / none 4,0K 0 4,0K 0% /sys/fs/cgroup udev 3,9G 4,0K 3,9G 1% /dev tmpfs 799M 1,2M 798M 1% /run none 5,0M 0 5,0M 0% /run/lock none 3,9G 1,2M 3,9G 1% /run/shm none 100M 12K 100M 1% /run/user /dev/sda2 181M 86M 87M 50% /boot /dev/sdb1 1,8T 1,7T 54G 97% /data /dev/sda4 895G 751G 100G 89% /home /dev/sdi1 30G 5,2G 25G 18% /media/CORSAIR /dev/sdh1 1,8T 1,6T 187G 90% /media/INTENSO_2TB /dev/sdg1 91M 5,6M 80M 7% /media/3cbb70ec-84cf-466c-ac1a-067aa63519f6 Memory usage total used free shared buffers cached Speicher: 7986 5394 2591 0 265 1495 -/+ Puffer/Zwischenspeicher: 3633 4352 Auslagerungsdatei: 3717 0 3717 =========================================================================== Output options =========================================================================== Hugin Version: 2011.4.0.cf9be9344356 Project file: /tmp/huginpto_HqyXVG Output prefix: DSC_0037-DSC_0038 Projection: Equirectangular (2) Field of view: 24 x 106 Canvas dimensions: 4586 x 20255 Crop area: (601,16780) - (4314,20201) Output exposure value: 13.01 Selected outputs Normal panorama * Blended panorama Using GPU for remapping =========================================================================== Input images =========================================================================== Number of images in project file: 2 Number of active images: 2 Image 0: /home/ak/Downloads/QUADRO_Bilder/130530_TM/DSC_0037.JPG Image 0: Size 5520x3680, Exposure: 12.98 Image 1: /home/ak/Downloads/QUADRO_Bilder/130530_TM/DSC_0038.JPG Image 1: Size 5520x3680, Exposure: 13.03 =========================================================================== Testing programs =========================================================================== Checking nona...[OK] Checking enblend...[OK] Checking enfuse...[OK] Checking hugin_hdrmerge...[OK] Checking exiftool...[OK] =========================================================================== Stitching panorama =========================================================================== nona -g -z LZW -r ldr -m TIFF_m -o DSC_0037-DSC_0038 -i 0 /tmp/huginpto_HqyXVG nona: using graphics card: nouveau Gallium 0.4 on NV98 destStart=[601, 16780] destEnd=[4169, 20201] destSize=[(3568, 3421)] srcSize=[(5520, 3680)] srcBuffer=0x2aaab6518010 srcAlphaBuffer=0 destBuffer=0x2aaab9f37010 destAlphaBuffer=0x2aaabc224010 destGLInternalFormat=GL_RGBA8 destGLFormat=GL_RGB destGLType=GL_UNSIGNED_BYTE srcGLInternalFormat=GL_RGBA8 srcGLFormat=GL_RGB srcGLType=GL_UNSIGNED_BYTE srcAlphaGLType=GL_BYTE destAlphaGLType=GL_UNSIGNED_BYTE warparound=0 needsAtanWorkaround=0 maxTextureSize=8192 Source chunks: [(0, 0) to (5520, 3680) = (5520x3680)] Dest chunks: [(0, 0) to (1784, 1711) = (1784x1711)] [(1784, 0) to (3568, 1711) = (1784x1711)] [(0, 1711) to (1784, 3421) = (1784x1710)] [(1784, 1711) to (3568, 3421) = (1784x1710)] Total GPU memory used: 276501856 Interpolator chunks: [(0, 0) to (4, 4) = (4x4)] #version 110 #extension GL_ARB_texture_rectangle : enable uniform sampler2DRect SrcTexture; float sinh(in float x) { return (exp(x) - exp(-x)) / 2.0; } float cosh(in float x) { return (exp(x) + exp(-x)) / 2.0; } float atan2_xge0(const in float y, const in float x) { return atan(y, x); } float atan2_safe(const in float y, const in float x) { return atan(y, x); } float atan_safe(const in float yx) { return atan(yx); } void main(void) { float discardA = 1.0; float discardB = 0.0; vec2 src = gl_TexCoord[0].st; src -= vec2(2293.0000000000000000, 10127.500000000000000); // rotate_erect(34395.000000000000000, 269.34601504281783946) { src.s += 269.34601504281783946; float w = (abs(src.s) > 34395.000000000000000) ? 1.0 : 0.0; float n = (src.s < 0.0) ? 0.5 : -0.5; src.s += w * -68790.000000000000000 * ceil(src.s / 68790.000000000000000 + n); } // sphere_tp_erect(10948.268535291481385) { float phi = src.s / 10948.268535291481385; float theta = -src.t / 10948.268535291481385 + 1.5707963267948965580; if (theta < 0.0) { theta = -theta; phi += 3.1415926535897931160; } if (theta > 3.1415926535897931160) { theta = 3.1415926535897931160 - (theta - 3.1415926535897931160); phi += 3.1415926535897931160; } float s = sin(theta); vec2 v = vec2(s * sin(phi), cos(theta)); float r = length(v); theta = 10948.268535291481385 * atan2_safe(r, s * cos(phi)); src = v * (theta / r); } // persp_sphere(10948.268535291481385) { mat3 m = mat3(6.1232339957367660359e-17, -0.71629207928719007548, 0.69780058551883850093, 1.0000000000000000000, 4.3860240107682970194e-17, -4.2727962674939726463e-17, 0.0000000000000000000, 0.69780058551883850093, 0.71629207928719007548); float r = length(src); float theta = r / 10948.268535291481385; float s = 0.0; if (r != 0.0) s = sin(theta) / r; vec3 v = vec3(s * src.s, s * src.t, cos(theta)); vec3 u = v * m; r = length(u.st); theta = 0.0; if (r != 0.0) theta = 10948.268535291481385 * atan2_safe(r, u.p) / r; src = theta * u.st; } // rect_sphere_tp(10948.268535291481385) { float r = length(src); float theta = r / 10948.268535291481385; float rho = 0.0; if (theta >= 1.5707963267948965580) rho = 1.6e16; else if (theta == 0.0) rho = 1.0; else rho = tan(theta) / theta; src *= rho; } // resize(1.4705521652215638451, 1.4705521652215638451) src *= vec2(1.4705521652215638451, 1.4705521652215638451); // radial(0.97129638591855782526, 0.0000000000000000000, 0.028703614081442199030, 0.0000000000000000000, 1840.0000000000000000, 1000.0000000000000000) { float r = length(src) / 1840.0000000000000000; float scale = 1000.0; if (r < 1000.0000000000000000) { scale = ((0.0000000000000000000 * r + 0.028703614081442199030) * r + 0.0000000000000000000) * r + 0.97129638591855782526; } src *= scale; } src += vec2(2759.5000000000000000, 1839.5000000000000000); src = src * discardA + vec2(-1000.0, -1000.0) * discardB; gl_FragColor = vec4(src.s, 0.0, 0.0, src.t); } #version 110 #extension GL_ARB_texture_rectangle : enable uniform sampler2DRect CoordTexture; uniform sampler2DRect SrcTexture; uniform sampler2DRect AccumTexture; uniform vec2 SrcUL; uniform vec2 SrcLR; uniform vec2 KernelUL; uniform vec2 KernelWH; float w(const in float i, const in float f) { float A = -0.75000000000000000000; float c = abs(i - 1.0); float m = (i > 1.0) ? -1.0 : 1.0; float p = c + m * f; if (i == 1.0 || i == 2.0) { return (( A + 2.0 )*p - ( A + 3.0 ))*p*p + 1.0; } else { return (( A * p - 5.0 * A ) * p + 8.0 * A ) * p - 4.0 * A; } } void main(void) { vec2 src = texture2DRect(CoordTexture, gl_TexCoord[0].st).sq; vec4 accum = texture2DRect(AccumTexture, gl_TexCoord[0].st); src -= SrcUL; vec2 t = floor(src) + -0.50000000000000000000; vec2 f = fract(src); vec2 k = vec2(0.0, 0.0); for (float ky = 0.0; ky < 4.0000000000000000000; ky += 1.0) { k.t = ky + KernelUL.t; float wy = w(k.t, f.t); for (float kx = 0.0; kx < 4.0000000000000000000; kx += 1.0) { k.s = kx + KernelUL.s; float wx = w(k.s, f.s); vec2 ix = t + k; vec4 sp = texture2DRect(SrcTexture, ix); float weight = wx * wy * sp.a; accum += sp * weight; } } gl_FragColor = accum; } #version 120 #extension GL_ARB_texture_rectangle : enable uniform sampler2DRect NormTexture; uniform sampler2DRect CoordTexture; uniform sampler2DRect InvLutTexture; uniform sampler2DRect DestLutTexture; void main(void) { // Normalization vec4 n = texture2DRect(NormTexture, gl_TexCoord[0].st); vec4 p = vec4(0.0, 0.0, 0.0, 0.0); if (n.a >= 0.2) p = n / n.a; // Photometric // invLutSize = 256.00000000000000000 // pixelMax = 255.00000000000000000 // destLutSize = 1024.0000000000000000 // destExposure = 0.00012155526470237255378 // srcExposure = 0.00012398333886234303380 // whiteBalanceRed = 1.0000000000000000000 // whiteBalanceBlue = 1.0000000000000000000 p.rgb = p.rgb * 255.00000000000000000; vec2 invR = texture2DRect(InvLutTexture, vec2(p.r, 0.0)).sq; vec2 invG = texture2DRect(InvLutTexture, vec2(p.g, 0.0)).sq; vec2 invB = texture2DRect(InvLutTexture, vec2(p.b, 0.0)).sq; vec3 invX = vec3(invR.x, invG.x, invB.x); vec3 invY = vec3(invR.y, invG.y, invB.y); vec3 invA = fract(p.rgb); p.rgb = mix(invX, invY, invA); // VigCorrMode=VIGCORR_RADIAL float vig = 1.0; { vec2 vigCorrCenter = vec2(2759.5000000000000000, 1839.5000000000000000); float radiusScale=0.00030146749794849404857; float radialVigCorrCoeff0 = 1.0000000000000000000; float radialVigCorrCoeff1 = 0.18668408896774799088; float radialVigCorrCoeff2 = -0.93686420389978897205; float radialVigCorrCoeff3 = 0.63815654815826194923; vec2 src = texture2DRect(CoordTexture, gl_TexCoord[0].st).sq; vec2 d = src - vigCorrCenter; d *= radiusScale; vig = radialVigCorrCoeff0; float r2 = dot(d, d); float r = r2; vig += radialVigCorrCoeff1 * r; r *= r2; vig += radialVigCorrCoeff2 * r; r *= r2; vig += radialVigCorrCoeff3 * r; } vec3 exposure_whitebalance = vec3(0.98041612540644407225, 0.98041612540644407225, 0.98041612540644407225); p.rgb = (p.rgb * exposure_whitebalance) / vig; p.rgb = p.rgb * 1023.0000000000000000; vec2 destR = texture2DRect(DestLutTexture, vec2(p.r, 0.0)).sq; vec2 destG = texture2DRect(DestLutTexture, vec2(p.g, 0.0)).sq; vec2 destB = texture2DRect(DestLutTexture, vec2(p.b, 0.0)).sq; vec3 destX = vec3(destR.x, destG.x, destB.x); vec3 destY = vec3(destR.y, destG.y, destB.y); vec3 destA = fract(p.rgb); p.rgb = mix(destX, destY, destA); gl_FragColor = p; } gpu shader program compile time = 0.093 nona: Unsupported framebuffer format in: /build/buildd/hugin-2011.4.0+dfsg/src/hugin_base/vigra_ext/ImageTransformsGPU.cpp:713 make: *** [DSC_0037-DSC_00380000.tif] Fehler 1 Benjamin, I can not search for "process-working.png", as my system experiences a phase of heavy troubles. Try to save all data. Sorry, Axel Am 06.06.2013 10:33, schrieb Benjamin Girault: > https://bugs.kde.org/show_bug.cgi?id=319882 > > --- Comment #3 from Benjamin Girault <benjamin.girault@gmail.com> --- > Do you have the file "process-working.png" somewhere on your system (i.e. in a > subdirectory of /usr/share/")? If not, this is a Ubuntu issue. > > Also, does the plugin work when stitching into JPEG? > Ok, so if you got the same error with hugin than with the plugin, the first thing to do is to update hugin (2012.0 is out). Next thing is (i.e. if upgrading does not help), as I request in my first comment, to send me the files, my private email. I'll leave this bug report open while you repair your system. Am 07.06.2013 19:57, schrieb Benjamin Girault: > https://bugs.kde.org/show_bug.cgi?id=319882 > > --- Comment #7 from Benjamin Girault <benjamin.girault@gmail.com> --- > Ok, so if you got the same error with hugin than with the plugin, the first > thing to do is to update hugin (2012.0 is out). Next thing is (i.e. if > upgrading does not help), as I request in my first comment, to send me the > files, my private email. > > I'll leave this bug report open while you repair your system. > Thak you, I'll try my best.. Any news? Please reopen the bug if you have more info... *** Bug 355509 has been marked as a duplicate of this bug. *** Hi Gilles, I see you marked bug # 355509 "DNGkonverter crash when trying to convert raw file from Nikon D750" a duplicate of this one. However, this bug here is marked RESOLVED INVALID, so how does this help with the DNGkonverter crash? TIA The crash is due to a missing pixmap from Breeze theme. Install Oxygen theme and all will be fine. Gilles Caulier Created attachment 95582 [details]
New crash information added by DrKonqi
dngconverter (4.14.0) on KDE Platform 4.14.13 using Qt 4.8.6
I have installed oxygen-theme, as suggested. DNGkonverter still crashes.
The file 'process-working.png' was already installed on my system before installing oxygen-theme.
$ locate process-working.png
/usr/share/icons/Humanity/animations/16/process-working.png
/usr/share/icons/Humanity/animations/22/process-working.png
/usr/share/icons/Humanity/animations/24/process-working.png
/usr/share/icons/Humanity/animations/32/process-working.png
/usr/share/icons/oxygen/22x22/animations/process-working.png
Am I missing something?
-- Backtrace (Reduced):
#6 0x00007f1c48bc7b39 in QPixmap::isNull() const () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#7 0x00007f1c48bc896b in QPixmap::copy(QRect const&) const () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#8 0x00007f1c48bc96bf in QPixmap::QPixmap(QPixmap const&) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#9 0x00007f1c4a2a3f38 in KPixmapSequence::frameAt(int) const () from /usr/lib/libkdeui.so.5
#10 0x00007f1c4a8ca251 in KIPIPlugins::KPImagesList::slotProgressTimerDone() () from /usr/lib/digikam/libkipiplugins.so.4.14.0
OK, it now doesn't crash anymore after a reboot. Just tells me the file type is not supported, but that's a different story. *** Bug 361660 has been marked as a duplicate of this bug. *** *** Bug 361678 has been marked as a duplicate of this bug. *** *** Bug 362870 has been marked as a duplicate of this bug. *** *** Bug 364122 has been marked as a duplicate of this bug. *** |