Video freeze after seeking
Posted: 29 Mar 2007 00:35
Hello,
In first, the problem has been seen only on Windows , Vlc0.8.6 and Vlc0.8.6a, and only for video files containing mpeg4 codec with mp4 encapsulation.
The video files i've used to test it was recorded with Vlc from IP Camera streaming Mpeg4 video throught rtp multicast protocole.
So, the problem appears when you seek in the video, and if your computer has started since little time. Then, the slider on the wxWidget interface and time go on but the video is no more refresh.
For example:
if your video files last 2 hours and if your computer is booted since only one hour, you can seek in the first hour of the video really nicely, but if you seek over the first hour the video freeze. Then if you go back in the first hour, the video work nice.
So, i've transcode my video files in MPeg-PS (without changing codec), and in Ogg Theaura, and both works nice.
Then, i've tried my video files on Linux, and it works nice again.
So, i've searched where GetTickCount was used, and i've found mdate() in src/misc/mdate.c
I 've understood why it 's working on Linux and not on Windows. Linux use gettimeofday which give a huge value contrary to Windows where the value can start near 0.
So, in the windows piece of code, i've added a huge value to the both return value (inside if and inside else), and now it's working nice.
I know it's just a do-it-yourselfing but i don't know enough the code of VLC to find quickly the real problem, that it would be in MP4 module, certainly in instruction that use the result of mdate() in substraction and store the result in a unsigned instead of a signed variable. It's only what i feel.
However, my video files could be the source of problem too.
So, if somebody with ability that i don't have could take a look, or do the test with healthy mp4 file.
Thank you
In first, the problem has been seen only on Windows , Vlc0.8.6 and Vlc0.8.6a, and only for video files containing mpeg4 codec with mp4 encapsulation.
The video files i've used to test it was recorded with Vlc from IP Camera streaming Mpeg4 video throught rtp multicast protocole.
So, the problem appears when you seek in the video, and if your computer has started since little time. Then, the slider on the wxWidget interface and time go on but the video is no more refresh.
For example:
if your video files last 2 hours and if your computer is booted since only one hour, you can seek in the first hour of the video really nicely, but if you seek over the first hour the video freeze. Then if you go back in the first hour, the video work nice.
So, i've transcode my video files in MPeg-PS (without changing codec), and in Ogg Theaura, and both works nice.
Then, i've tried my video files on Linux, and it works nice again.
So, i've searched where GetTickCount was used, and i've found mdate() in src/misc/mdate.c
I 've understood why it 's working on Linux and not on Windows. Linux use gettimeofday which give a huge value contrary to Windows where the value can start near 0.
So, in the windows piece of code, i've added a huge value to the both return value (inside if and inside else), and now it's working nice.
I know it's just a do-it-yourselfing but i don't know enough the code of VLC to find quickly the real problem, that it would be in MP4 module, certainly in instruction that use the result of mdate() in substraction and store the result in a unsigned instead of a signed variable. It's only what i feel.
However, my video files could be the source of problem too.
So, if somebody with ability that i don't have could take a look, or do the test with healthy mp4 file.
Thank you