Your message dated Sun, 27 Apr 2008 23:55:22 +0100
with message-id <[EMAIL PROTECTED]>
and subject line xmms has been removed from Debian, closing #288289
has caused the Debian Bug report #288289,
regarding xmms: input.c: incorrect vis_list handling_
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [EMAIL PROTECTED]
immediately.)


-- 
288289: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=288289
Debian Bug Tracking System
Contact [EMAIL PROTECTED] with problems
--- Begin Message ---
Subject: input.c: incorrect vis_list handling
Package: xmms
Version: 1.2.10-2
Severity: important

I've noticed the problem when xmms-modplug was used as input plugin.
When I skipped song backward, then xmms started to constantly allocate
memory and all visualisation has stopped (oscilloscope, spectrum
analyzer and vis. plugins).

The reason is incorrect handling of vis_list. Function input_seek()
is response for problems.

#v+
void input_seek(int time)
{
        if (ip_data->playing && get_current_input_plugin())
        {
                free_vis_data();
                get_current_input_plugin()->seek(time);
        }
}
#v-

Function free_vis_data() clears vis_list. Next input plugin is called,
and does "real" seeking. Between clear the list and seek()'s complete is
a (very short) time gap -- if thread that plays music came in time and
call function input_add_vis_pcm() (which appends element to vis_list)
then vis_list will not be clear!

Each element of vis_list contains timestamp. Function input_update_vis()
asserts that timestamp of next element of list is greater then timestamp
of previous element. But if the thread insert new element to vis_list
before backward seek is completed, order of list will be unsettled.

The solution is simple: reverse order of instructions -- first call
seek(), then free_vis_data(). The other solution is to remove assertion
(it is done with if statement in function input_update_vis() around line
533).

I've tested both solutions.

best regards
Wojtek

-- System Information:
Debian Release: 3.1
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.4.18-686
Locale: LANG=pl_PL, LC_CTYPE=pl_PL (charmap=ISO-8859-2)

Versions of packages xmms depends on:
ii  libc6                    2.3.2.ds1-20    GNU C Library: Shared
libraries an
ii  libglib1.2               1.2.10-9        The GLib library of C routines
ii  libgtk1.2                1.2.10-17       The GIMP Toolkit set of
widgets fo
ii  libice6                  4.3.0.dfsg.1-10 Inter-Client Exchange library
ii  libsm6                   4.3.0.dfsg.1-10 X Window System Session
Management
ii  libx11-6                 4.3.0.dfsg.1-10 X Window System protocol
client li
ii  libxext6                 4.3.0.dfsg.1-10 X Window System miscellaneous
exte
ii  libxi6                   4.3.0.dfsg.1-10 X Window System Input
extension li
ii  xlibs                    4.3.0.dfsg.1-10 X Keyboard Extension (XKB)
configu

-- no debconf information




--- End Message ---
--- Begin Message ---
Version: 1:1.2.10+20070601-1+rm

The xmms package has been removed from Debian testing, unstable and
experimental, so I am now closing the bugs that were still opened
against it.

For more information about this package's removal, read
http://bugs.debian.org/461309 . That bug might give the reasons why
this package was removed, and suggestions of possible replacements.

Don't hesitate to reply to this mail if you have any question.

Thank you for your contribution to Debian.

--
Marco Rodrigues
http://Marco.Tondela.org


--- End Message ---

Reply via email to