diff options
author | Maxim Levitsky <maximlevitsky@gmail.com> | 2007-08-12 18:31:37 +0100 |
---|---|---|
committer | Maxim Levitsky <maximlevitsky@gmail.com> | 2007-08-12 18:31:37 +0100 |
commit | 446e1487e45af46a62f00ce0165b830081073cda (patch) | |
tree | a813bce66c85373d112d986c1d2ee41342e12445 /m4 | |
parent | 3954c82f0a91fc5f4a0c43441177ac2ace1f4f05 (diff) | |
download | xine-lib-446e1487e45af46a62f00ce0165b830081073cda.tar.gz xine-lib-446e1487e45af46a62f00ce0165b830081073cda.tar.bz2 |
Fix goom visualization plug-in
I noticed that goom visualization plug-in doesn't work / freezes at some
combination of bit rates and its FPS.
Digging through it I found that algorithm that dispatches sound data to goom
is buggy, and so I have rewrote/cleaned it a lot.
Let me explain what is wrong:
I am talking about goom_port_put_buffer
in /xine-lib-1.1.7/src/post/goom/xine_goom.c
The counter this->skip_frame is supposed to hold count of frames that goom
should skip because of _video render unable to render video_.
But that algorithm also skips frames on its own, and still decrements that
counter.
So it goes negative, and no frames are displayed.
Basically to fix that you need to add
if (this->skip_frame > 0)
before this->skip_frame--;
But since I want to fix that properly I decided to learn why goom skips frames
on its own, and I now understand that whole algorithm is buggy.
Thus I reimplemented it properly.
I tested it , and it works with all my sound files, also I added lot of debug
printfs to test whenever it works as expected, and it does.
--HG--
extra : transplant_source : %B6%0C%09%D6%93%B8%00cj%3B8%C7%B5%0B%DB%21%08%92%3E%7B
Diffstat (limited to 'm4')
0 files changed, 0 insertions, 0 deletions