Seek to 0 in MKV file stops playback, high CPU use, increased memory consumption
When seeking to time index 0 in an MKV file VLC will get stuck; memory usage seems to keep increasing at a rate of 10-20 MB/sec, and it will get stuck at 100% CPU.
I've reproduced this with the 32-bits version of VLC on both Windows XP and Windows 7, with 15 out of 15 MKV files tested (ie, 100% success rate, always reproducable).
Steps to reproduce:
-
Load MKV file, let it play a few seconds.
-
Use shift-left a few times to skip to start (time=0)
Debug log:
[01ca1c88] mkv demux debug: SET_TIME to 5329987
[01ca1c88] mkv demux debug: seek request to 5329987 (-1.000000%)
[01ca1c88] mkv demux debug: seek got 5005000 (9%)
[01cbf258] main input debug: Buffering 0%
[01cbf258] main input debug: Buffering 9%
[01cbf258] main input debug: Buffering 23%
[01cbf258] main input debug: Buffering 36%
[01cbf258] main input debug: Buffering 50%
[01cbf258] main input debug: Buffering 53%
[01cbf258] main input debug: Buffering 60%
[01cbf258] main input debug: Buffering 67%
[01cbf258] main input debug: Buffering 80%
[01cbf258] main input debug: Buffering 94%
[01cbf258] main input debug: Stream buffering done (677 ms in 3 ms)
[00e4e920] main decoder debug: End of video preroll
[00e4e920] main decoder debug: Received first picture
[01cd3528] direct3d vout display debug: Reusing 394x58 texture for OSD
[01cd3528] direct3d vout display debug: Reusing 394x58 texture for OSD
[01cd3528] direct3d vout display debug: Reusing 394x58 texture for OSD
[00e4e920] main decoder debug: End of video preroll
[01cbf258] main input debug: Decoder buffering done in 339 ms
[01e0a068] main decoder debug: End of audio preroll
[01cbf258] main input debug: control type=4
[01ca1c88] mkv demux debug: SET_TIME to 0
[01ca1c88] mkv demux debug: seek request to 0 (-1.000000%)
[01cbf258] main input debug: Buffering 0%
[01cbf258] main input debug: Buffering 0%
[01cbf258] main input debug: Buffering 0%
[01cbf258] main input debug: Buffering 0%
[01cbf258] main input debug: Buffering 0%
Last line is repeated many more times.
Exiting VLC also causes problems in some cases, it gets stuck in this loop:
[01cd3528] main vout display debug: VoutDisplayEvent 'resize' 2118306888x-1 window
[01cd3528] direct3d vout display debug: DirectXUpdateRects image_src_clipped coords: 0,0,1920,1080
[01cd3528] main vout display debug: VoutDisplayEvent 'resize' 0x-1446129728 window
[00e4e920] main decoder warning: can't get output picture
[00e4e920] main decoder warning: can't get output picture
[00e4e920] main decoder warning: can't get output picture
[00e4e920] main decoder warning: can't get output picture
Tested against latest vlc-2.0.0-rc1-20120210-0210-win32.exe, but older versions of the 1.2.0 line also have this problem.