opus_pvq: fix PVQ search for K < 5 and low Ns
authorRostislav Pehlivanov <atomnuker@gmail.com>
Sun, 19 Feb 2017 18:20:39 +0000 (18:20 +0000)
committerRostislav Pehlivanov <atomnuker@gmail.com>
Sun, 19 Feb 2017 19:13:14 +0000 (19:13 +0000)
commit67fa02ed794f9505bd9c3584c14bfb61c895f5bc
treeabe83b63829e7af14b209bfe090e260e8a06b6ed
parent4279613a2652cdf2bee564f4b7244567e5ba91ba
opus_pvq: fix PVQ search for K < 5 and low Ns

If the PVQ search picked a place to increment/decrement on the y[]
vector which had no pulse then it would cause a desync since it would
change the sum in the wrong direction. Fix this by not considering
places without pulses as viable.

This makes the PVQ search slightly worse at K < 5 which isn't all that
common. Still, this is a workaround to prevent making broken files until
I can think of a better way of fixing it.

Also add an assertion, which can be removed or moved to assert1/2 once
the PVQ search is stable.

Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
libavcodec/opus_pvq.c