thanks for clarifying the issue ** Changed in: libav (Ubuntu) Status: New => Invalid
-- You received this bug notification because you are a member of Desktop Packages, which is subscribed to libav in Ubuntu. https://bugs.launchpad.net/bugs/1159760 Title: av_rescale_q() returns wrong value on Precise amd64 Status in “libav” package in Ubuntu: Invalid Bug description: I found a bug with the function av_rescale_q() in the latest versions on Precise LTS & Lucid LTS on amd64 processor. Below is my test code (to be linked against libavutilXX): uint64_t av_rescale_q_test(uint64_t a, AVRational b, AVRational c) { uint64_t num = b.num * c.den; uint64_t den = b.den * c.num; return ( a * num + (den>>1)) / den; } void test() { uint64_t out, out2, pts=30305290; AVRational base = { 1, 14112000}; AVRational bq = { 1, 1000000000}; out = av_rescale_q(pts, base, bq); out2 = av_rescale_q_test(pts, base, bq); printf("pts=0x%lX, out=0x%lX, out2=0x%lX\n", pts, out, out2); } And the output is: pts=0x1CE6C0A, out=0xFFFFFFFF80000036, out2=0x80000036 Obviously av_rescale_q() gives wrong answer. The interesting thing is: if I pull the source code of av_rescale_q() and all the invoked functions together from libav into my test code, the result becomes: pts=0x1CE6C0A, out=0x80000036, out2=0x80000036 Looks like the libav sourcecode itself is OK, but the built library is buggy. I have no idea how to further debug this problem. Somebody please look into this bug. I believe it could be reappeared on all amd64 distros including Lucid/Precie/Quantal. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libav/+bug/1159760/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp